From 3858414367d1fce1e2c5d949f4ed46dde10bbf5c Mon Sep 17 00:00:00 2001 From: falkTX Date: Sat, 21 Jun 2025 11:10:19 +0200 Subject: [PATCH] Update DPF, remove unused files Signed-off-by: falkTX --- Makefile | 4 +- dpf/Makefile.plugins.mk | 18 +- dpf/cmake/DPF-plugin.cmake | 1464 ----- dpf/dgl/FileBrowserDialog.hpp | 28 - dpf/dgl/Layout.hpp | 71 - dpf/dgl/Makefile | 1 - dpf/dgl/Vulkan.hpp | 103 - dpf/dgl/WebView.hpp | 28 - dpf/dgl/src/Application.cpp | 4 + dpf/dgl/src/Layout.cpp | 201 - dpf/dgl/src/Stub.cpp | 193 - dpf/dgl/src/Vulkan.cpp | 250 - dpf/dgl/src/WebViewWin32.cpp | 23 - .../pugl-upstream/subprojects/sphinxygen.wrap | 14 - dpf/distrho/DistrhoUIMain.cpp | 6 +- dpf/distrho/DistrhoUtils.hpp | 9 +- dpf/distrho/extra/Base64.hpp | 149 - dpf/distrho/extra/ChildProcess.hpp | 294 - dpf/distrho/extra/ExternalWindow.hpp | 578 -- dpf/distrho/extra/FileBrowserDialog.hpp | 28 - dpf/distrho/extra/FileBrowserDialogImpl.cpp | 894 --- dpf/distrho/extra/FileBrowserDialogImpl.hpp | 129 - dpf/distrho/extra/Filesystem.hpp | 106 - dpf/distrho/extra/Runner.hpp | 251 - dpf/distrho/extra/Time.hpp | 127 - dpf/distrho/extra/WebView.hpp | 28 - dpf/distrho/extra/WebViewImpl.cpp | 2072 ------- dpf/distrho/extra/WebViewImpl.hpp | 136 - dpf/distrho/extra/WebViewWin32.hpp | 122 - dpf/distrho/extra/choc/LICENSE.md | 15 - dpf/distrho/extra/choc/README.md | 22 - dpf/distrho/extra/choc/choc.patch | 2803 ---------- dpf/distrho/extra/choc/choc_DesktopWindow.h | 154 - dpf/distrho/extra/choc/choc_DynamicLibrary.h | 141 - dpf/distrho/extra/choc/choc_MemoryDLL.h | 511 -- dpf/distrho/extra/choc/choc_Platform.h | 67 - dpf/distrho/extra/choc/choc_StringUtilities.h | 74 - dpf/distrho/extra/choc/choc_WebView.h | 4769 ----------------- dpf/distrho/extra/sofd/libsofd.c | 2482 --------- dpf/distrho/extra/sofd/libsofd.h | 194 - dpf/distrho/src/DistrhoPluginLV2export.cpp | 22 +- dpf/lac/2014-small-talk.odp | Bin 381315 -> 0 bytes get-plugins.sh | 24 + 43 files changed, 72 insertions(+), 18537 deletions(-) delete mode 100644 dpf/cmake/DPF-plugin.cmake delete mode 100644 dpf/dgl/FileBrowserDialog.hpp delete mode 100644 dpf/dgl/Layout.hpp delete mode 100644 dpf/dgl/Vulkan.hpp delete mode 100644 dpf/dgl/WebView.hpp delete mode 100644 dpf/dgl/src/Layout.cpp delete mode 100644 dpf/dgl/src/Stub.cpp delete mode 100644 dpf/dgl/src/Vulkan.cpp delete mode 100644 dpf/dgl/src/WebViewWin32.cpp delete mode 100644 dpf/dgl/src/pugl-upstream/subprojects/sphinxygen.wrap delete mode 100644 dpf/distrho/extra/Base64.hpp delete mode 100644 dpf/distrho/extra/ChildProcess.hpp delete mode 100644 dpf/distrho/extra/ExternalWindow.hpp delete mode 100644 dpf/distrho/extra/FileBrowserDialog.hpp delete mode 100644 dpf/distrho/extra/FileBrowserDialogImpl.cpp delete mode 100644 dpf/distrho/extra/FileBrowserDialogImpl.hpp delete mode 100644 dpf/distrho/extra/Filesystem.hpp delete mode 100644 dpf/distrho/extra/Runner.hpp delete mode 100644 dpf/distrho/extra/Time.hpp delete mode 100644 dpf/distrho/extra/WebView.hpp delete mode 100644 dpf/distrho/extra/WebViewImpl.cpp delete mode 100644 dpf/distrho/extra/WebViewImpl.hpp delete mode 100644 dpf/distrho/extra/WebViewWin32.hpp delete mode 100644 dpf/distrho/extra/choc/LICENSE.md delete mode 100644 dpf/distrho/extra/choc/README.md delete mode 100644 dpf/distrho/extra/choc/choc.patch delete mode 100644 dpf/distrho/extra/choc/choc_DesktopWindow.h delete mode 100644 dpf/distrho/extra/choc/choc_DynamicLibrary.h delete mode 100644 dpf/distrho/extra/choc/choc_MemoryDLL.h delete mode 100644 dpf/distrho/extra/choc/choc_Platform.h delete mode 100644 dpf/distrho/extra/choc/choc_StringUtilities.h delete mode 100644 dpf/distrho/extra/choc/choc_WebView.h delete mode 100644 dpf/distrho/extra/sofd/libsofd.c delete mode 100644 dpf/distrho/extra/sofd/libsofd.h delete mode 100644 dpf/lac/2014-small-talk.odp diff --git a/Makefile b/Makefile index 8b7ce6f..834b66e 100644 --- a/Makefile +++ b/Makefile @@ -28,9 +28,11 @@ endif dgl: ifeq ($(HAVE_CAIRO_OR_OPENGL),true) - $(MAKE) USE_FILE_BROWSER=false -C dpf/dgl ifeq ($(HAVE_OPENGL),true) + $(MAKE) USE_FILE_BROWSER=false -C dpf/dgl opengl $(MAKE) USE_FILE_BROWSER=false -C dpf/dgl opengl3 +else + $(MAKE) USE_FILE_BROWSER=false -C dpf/dgl cairo endif endif diff --git a/dpf/Makefile.plugins.mk b/dpf/Makefile.plugins.mk index 62af718..16d959d 100644 --- a/dpf/Makefile.plugins.mk +++ b/dpf/Makefile.plugins.mk @@ -514,11 +514,21 @@ $(DGL_BUILD_DIR)/libdgl-vulkan.a: $(DGL_POSSIBLE_DEPS) # --------------------------------------------------------------------------------------------------------------------- +$(BUILD_DIR)/DistrhoPluginMain_%_single_obj.cpp.o: $(DPF_PATH)/distrho/DistrhoPluginMain.cpp $(EXTRA_DEPENDENCIES) $(EXTRA_DSP_DEPENDENCIES) + -@mkdir -p $(BUILD_DIR) + @echo "Compiling DistrhoPluginMain.cpp ($*)" + $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -DDISTRHO_PLUGIN_TARGET_$* -DDISTRHO_PLUGIN_AND_UI_IN_SINGLE_OBJECT=1 -c -o $@ + $(BUILD_DIR)/DistrhoPluginMain_%.cpp.o: $(DPF_PATH)/distrho/DistrhoPluginMain.cpp $(EXTRA_DEPENDENCIES) $(EXTRA_DSP_DEPENDENCIES) -@mkdir -p $(BUILD_DIR) @echo "Compiling DistrhoPluginMain.cpp ($*)" $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -DDISTRHO_PLUGIN_TARGET_$* -c -o $@ +$(BUILD_DIR)/DistrhoUIMain_%_single_obj.cpp.o: $(DPF_PATH)/distrho/DistrhoUIMain.cpp $(EXTRA_DEPENDENCIES) $(EXTRA_UI_DEPENDENCIES) + -@mkdir -p $(BUILD_DIR) + @echo "Compiling DistrhoUIMain.cpp ($*)" + $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -DDISTRHO_PLUGIN_TARGET_$* -DDISTRHO_PLUGIN_AND_UI_IN_SINGLE_OBJECT=1 -c -o $@ + $(BUILD_DIR)/DistrhoUIMain_%.cpp.o: $(DPF_PATH)/distrho/DistrhoUIMain.cpp $(EXTRA_DEPENDENCIES) $(EXTRA_UI_DEPENDENCIES) -@mkdir -p $(BUILD_DIR) @echo "Compiling DistrhoUIMain.cpp ($*)" @@ -534,10 +544,10 @@ $(BUILD_DIR)/DistrhoUI_win32.cpp.o: $(DPF_PATH)/distrho/DistrhoUI_win32.cpp $(EX @echo "Compiling DistrhoUI_win32.cpp ($*)" $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -std=gnu++17 -c -o $@ -$(BUILD_DIR)/DistrhoPluginMain_JACK.cpp.o: BUILD_CXX_FLAGS += $(JACK_FLAGS) - $(BUILD_DIR)/DistrhoPluginMain_AU.cpp.o: BUILD_CXX_FLAGS += -ObjC++ +$(BUILD_DIR)/DistrhoPluginMain_JACK.cpp.o: BUILD_CXX_FLAGS += $(JACK_FLAGS) + $(BUILD_DIR)/DistrhoUIMain_AU.cpp.o: BUILD_CXX_FLAGS += -ObjC++ $(BUILD_DIR)/DistrhoUIMain_DSSI.cpp.o: BUILD_CXX_FLAGS += $(LIBLO_FLAGS) @@ -591,7 +601,7 @@ lv2_dsp: $(lv2_dsp) lv2_sep: $(lv2_dsp) $(lv2_ui) ifeq ($(HAVE_DGL),true) -$(lv2): $(OBJS_DSP) $(OBJS_UI) $(BUILD_DIR)/DistrhoPluginMain_LV2.cpp.o $(BUILD_DIR)/DistrhoUIMain_LV2.cpp.o $(DGL_LIB) $(DGL_LIB_SHARED) +$(lv2): $(OBJS_DSP) $(OBJS_UI) $(BUILD_DIR)/DistrhoPluginMain_LV2_single_obj.cpp.o $(BUILD_DIR)/DistrhoUIMain_LV2_single_obj.cpp.o $(DGL_LIB) $(DGL_LIB_SHARED) else $(lv2): $(OBJS_DSP) $(BUILD_DIR)/DistrhoPluginMain_LV2.cpp.o endif @@ -845,6 +855,7 @@ endif -include $(BUILD_DIR)/DistrhoPluginMain_LADSPA.cpp.d -include $(BUILD_DIR)/DistrhoPluginMain_DSSI.cpp.d -include $(BUILD_DIR)/DistrhoPluginMain_LV2.cpp.d +-include $(BUILD_DIR)/DistrhoPluginMain_LV2_single_obj.cpp.d -include $(BUILD_DIR)/DistrhoPluginMain_VST2.cpp.d -include $(BUILD_DIR)/DistrhoPluginMain_VST3.cpp.d -include $(BUILD_DIR)/DistrhoPluginMain_CLAP.cpp.d @@ -856,6 +867,7 @@ endif -include $(BUILD_DIR)/DistrhoUIMain_JACK.cpp.d -include $(BUILD_DIR)/DistrhoUIMain_DSSI.cpp.d -include $(BUILD_DIR)/DistrhoUIMain_LV2.cpp.d +-include $(BUILD_DIR)/DistrhoUIMain_LV2_single_obj.cpp.d -include $(BUILD_DIR)/DistrhoUIMain_VST2.cpp.d -include $(BUILD_DIR)/DistrhoUIMain_VST3.cpp.d -include $(BUILD_DIR)/DistrhoUIMain_CLAP.cpp.d diff --git a/dpf/cmake/DPF-plugin.cmake b/dpf/cmake/DPF-plugin.cmake deleted file mode 100644 index 9d5660e..0000000 --- a/dpf/cmake/DPF-plugin.cmake +++ /dev/null @@ -1,1464 +0,0 @@ -# DISTRHO Plugin Framework (DPF) -# Copyright (C) 2021 Jean Pierre Cimalando -# Copyright (C) 2022-2024 Filipe Coelho -# -# SPDX-License-Identifier: ISC - -# ------------------------------------------------------------------------------ -# CMake support module for the DISTRHO Plugin Framework -# -# The purpose of this module is to help building music plugins easily, when the -# project uses CMake as its build system. -# -# In order to use the helpers provided by this module, a plugin author should -# add DPF as a subproject, making the function `dpf_add_plugin` available. -# The usage of this function is documented below in greater detail. -# -# Example project `CMakeLists.txt`: -# -# ``` -# cmake_minimum_required(VERSION 3.7) -# project(MyPlugin) -# -# add_subdirectory(DPF) -# -# dpf_add_plugin(MyPlugin -# TARGETS clap lv2 vst2 vst3 -# UI_TYPE opengl -# FILES_DSP -# src/MyPlugin.cpp -# FILES_UI -# src/MyUI.cpp) -# -# target_include_directories(MyPlugin -# PUBLIC src) -# ``` -# -# Important: note that properties, such as include directories, definitions, -# and linked libraries *must* be marked with `PUBLIC` so they take effect and -# propagate into all the plugin targets. - -include(CMakeParseArguments) - -# ------------------------------------------------------------------------------ -# DPF public functions -# ------------------------------------------------------------------------------ - -# dpf_add_plugin(name ) -# ------------------------------------------------------------------------------ -# -# Add a plugin built using the DISTRHO Plugin Framework. -# -# ------------------------------------------------------------------------------ -# Created targets: -# -# `` -# static library: the common part of the plugin -# The public properties set on this target apply to both DSP and UI. -# -# `-dsp` -# static library: the DSP part of the plugin -# The public properties set on this target apply to the DSP only. -# -# `-ui` -# static library: the UI part of the plugin -# The public properties set on this target apply to the UI only. -# -# `-` for each target specified with the `TARGETS` argument. -# This is target-dependent and not intended for public use. -# -# ------------------------------------------------------------------------------ -# Arguments: -# -# `TARGETS` ... -# a list of one of more of the following target types: -# `jack`, `ladspa`, `dssi`, `lv2`, `vst2`, `vst3`, `clap` -# -# `UI_TYPE` -# the user interface type, can be one of the following: -# - cairo -# - external -# - opengl (default) -# - opengl3 -# - vulkan -# - webview -# -# `FILES_COMMON` ... -# list of sources which are part of both DSP and UI -# -# `FILES_DSP` ... -# list of sources which are part of the DSP -# -# `FILES_UI` ... -# list of sources which are part of the UI -# empty indicates the plugin does not have UI -# -# `MODGUI_CLASS_NAME` -# class name to use for modgui builds -# -# `MONOLITHIC` -# build LV2 as a single binary for UI and DSP -# -# `NO_SHARED_RESOURCES` -# do not build DPF shared resources (fonts, etc) -# -# `USE_FILE_BROWSER` -# enable file browser dialog APIs -# -# `USE_WEB_VIEW` -# enable web browser view APIs -# -function(dpf_add_plugin NAME) - set(options MONOLITHIC NO_SHARED_RESOURCES USE_FILE_BROWSER USE_WEB_VIEW) - set(oneValueArgs MODGUI_CLASS_NAME UI_TYPE) - set(multiValueArgs FILES_COMMON FILES_DSP FILES_UI TARGETS) - cmake_parse_arguments(_dpf_plugin "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - - if("${_dpf_plugin_UI_TYPE}" STREQUAL "") - set(_dpf_plugin_UI_TYPE "opengl") - endif() - - set(_dgl_library) - if(_dpf_plugin_FILES_UI) - if(_dpf_plugin_UI_TYPE STREQUAL "cairo") - dpf__add_dgl_cairo($> - $ - $) - set(_dgl_library dgl-cairo) - elseif(_dpf_plugin_UI_TYPE STREQUAL "external") - dpf__add_dgl_external($ - $) - set(_dgl_library dgl-external) - elseif(_dpf_plugin_UI_TYPE STREQUAL "opengl") - dpf__add_dgl_opengl($> - $ - $) - set(_dgl_library dgl-opengl) - elseif(_dpf_plugin_UI_TYPE STREQUAL "opengl3") - dpf__add_dgl_opengl3($> - $ - $) - set(_dgl_library dgl-opengl3) - elseif(_dpf_plugin_UI_TYPE STREQUAL "vulkan") - dpf__add_dgl_vulkan($> - $ - $) - set(_dgl_library dgl-vulkan) - elseif(_dpf_plugin_UI_TYPE STREQUAL "webview") - set(_dpf_plugin_USE_WEB_VIEW TRUE) - dpf__add_dgl_external($ - $) - set(_dgl_library dgl-external) - else() - message(FATAL_ERROR "Unrecognized UI type for plugin: ${_dpf_plugin_UI_TYPE}") - endif() - else() - set(_dpf_plugin_UI_TYPE "") - endif() - - set(_dgl_has_ui OFF) - if(_dgl_library) - set(_dgl_has_ui ON) - endif() - - ### - dpf__ensure_sources_non_empty(_dpf_plugin_FILES_COMMON) - dpf__ensure_sources_non_empty(_dpf_plugin_FILES_DSP) - dpf__ensure_sources_non_empty(_dpf_plugin_FILES_UI) - - ### - dpf__add_static_library("${NAME}" ${_dpf_plugin_FILES_COMMON}) - target_include_directories("${NAME}" PUBLIC - "${DPF_ROOT_DIR}/distrho") - - if(_dpf_plugin_USE_FILE_BROWSER) - target_compile_definitions("${NAME}" PUBLIC "DGL_USE_FILE_BROWSER") - endif() - - if(_dpf_plugin_USE_WEB_VIEW) - target_compile_definitions("${NAME}" PUBLIC "DGL_USE_WEB_VIEW") - endif() - - if(_dpf_plugin_MODGUI_CLASS_NAME) - target_compile_definitions("${NAME}" PUBLIC "DISTRHO_PLUGIN_MODGUI_CLASS_NAME=\"${_dpf_plugin_MODGUI_CLASS_NAME}\"") - endif() - - if((NOT WIN32) AND (NOT APPLE) AND (NOT HAIKU)) - target_link_libraries("${NAME}" PRIVATE "dl") - endif() - - if(_dgl_library) - # make sure that all code will see DGL_* definitions - target_link_libraries("${NAME}" PUBLIC - "${_dgl_library}-definitions" - dgl-system-libs-definitions - dgl-system-libs) - endif() - - dpf__add_static_library("${NAME}-dsp" ${_dpf_plugin_FILES_DSP}) - target_link_libraries("${NAME}-dsp" PUBLIC "${NAME}") - - if(_dgl_library) - dpf__add_static_library("${NAME}-ui" ${_dpf_plugin_FILES_UI}) - target_link_libraries("${NAME}-ui" PUBLIC "${NAME}" ${_dgl_library}) - if((NOT WIN32) AND (NOT APPLE) AND (NOT HAIKU)) - target_link_libraries("${NAME}-ui" PRIVATE "dl") - if(LINUX AND _dpf_plugin_USE_WEB_VIEW) - execute_process(COMMAND ${CMAKE_C_COMPILER} -print-file-name=Scrt1.o - OUTPUT_STRIP_TRAILING_WHITESPACE - OUTPUT_VARIABLE _dpf_plugin_shared_crt) - target_link_libraries("${NAME}-ui" PRIVATE "rt") - endif() - endif() - # add the files containing C++17 or Objective-C classes - dpf__add_plugin_specific_ui_sources("${NAME}-ui" "${_dpf_plugin_USE_WEB_VIEW}") - else() - add_library("${NAME}-ui" INTERFACE) - endif() - - ### - foreach(_target ${_dpf_plugin_TARGETS}) - if(_target STREQUAL "jack") - dpf__build_jack("${NAME}" "${_dgl_has_ui}") - elseif(_target STREQUAL "ladspa") - dpf__build_ladspa("${NAME}") - elseif(_target STREQUAL "dssi") - dpf__build_dssi("${NAME}" "${_dgl_has_ui}") - elseif(_target STREQUAL "lv2") - dpf__build_lv2("${NAME}" "${_dgl_has_ui}" "${_dpf_plugin_MONOLITHIC}" "${_dpf_plugin_shared_crt}") - elseif(_target STREQUAL "vst2") - dpf__build_vst2("${NAME}" "${_dgl_has_ui}" "${_dpf_plugin_shared_crt}") - elseif(_target STREQUAL "vst3") - dpf__build_vst3("${NAME}" "${_dgl_has_ui}" "${_dpf_plugin_shared_crt}") - elseif(_target STREQUAL "clap") - dpf__build_clap("${NAME}" "${_dgl_has_ui}" "${_dpf_plugin_shared_crt}") - elseif(_target STREQUAL "au") - if (APPLE) - dpf__build_au("${NAME}" "${_dgl_has_ui}") - endif() - elseif(_target STREQUAL "static") - dpf__build_static("${NAME}" "${_dgl_has_ui}") - else() - message(FATAL_ERROR "Unrecognized target type for plugin: ${_target}") - endif() - endforeach() -endfunction() - -# dpf_add_executable(target ) -# ------------------------------------------------------------------------------ -# -# Add a simple executable built using the DISTRHO Plugin Framework. -# -# ------------------------------------------------------------------------------ -# Arguments: -# -# `UI_TYPE` -# the user interface type, can be one of the following: -# - cairo -# - external -# - opengl (default) -# - opengl3 -# - vulkan -# - webview -# -# `NO_SHARED_RESOURCES` -# do not build DPF shared resources (fonts, etc) -# -# `USE_FILE_BROWSER` -# enable file browser dialog APIs -# -# `USE_WEB_VIEW` -# enable web browser view APIs -# -function(dpf_add_executable NAME) - set(options NO_SHARED_RESOURCES USE_FILE_BROWSER USE_WEB_VIEW) - set(oneValueArgs UI_TYPE) - cmake_parse_arguments(_dpf_plugin "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - - if("${_dpf_plugin_UI_TYPE}" STREQUAL "") - set(_dpf_plugin_UI_TYPE "opengl") - endif() - - set(_dgl_library) - if(_dpf_plugin_UI_TYPE STREQUAL "cairo") - dpf__add_dgl_cairo($> - $ - $) - set(_dgl_library dgl-cairo) - elseif(_dpf_plugin_UI_TYPE STREQUAL "external") - dpf__add_dgl_external($ - $) - set(_dgl_library dgl-external) - elseif(_dpf_plugin_UI_TYPE STREQUAL "opengl") - dpf__add_dgl_opengl($> - $ - $) - set(_dgl_library dgl-opengl) - elseif(_dpf_plugin_UI_TYPE STREQUAL "opengl3") - dpf__add_dgl_opengl3($> - $ - $) - set(_dgl_library dgl-opengl3) - elseif(_dpf_plugin_UI_TYPE STREQUAL "vulkan") - dpf__add_dgl_vulkan($> - $ - $) - set(_dgl_library dgl-vulkan) - elseif(_dpf_plugin_UI_TYPE STREQUAL "webview") - set(_dpf_plugin_USE_WEB_VIEW TRUE) - dpf__add_dgl_external($ - $) - set(_dgl_library dgl-external) - else() - message(FATAL_ERROR "Unrecognized UI type for executable: ${_dpf_plugin_UI_TYPE}") - endif() - - set(_dgl_has_ui OFF) - if(_dgl_library) - set(_dgl_has_ui ON) - endif() - - dpf__create_dummy_source_list(_no_srcs) - dpf__add_executable("${NAME}" ${_no_srcs}) - target_include_directories("${NAME}" PUBLIC "${DPF_ROOT_DIR}/distrho") - - if(_dpf_plugin_USE_FILE_BROWSER) - target_compile_definitions("${NAME}" PUBLIC "DGL_USE_FILE_BROWSER") - endif() - - if(_dpf_plugin_USE_WEB_VIEW) - target_compile_definitions("${NAME}" PUBLIC "DGL_USE_WEB_VIEW") - endif() - - if((NOT WIN32) AND (NOT APPLE) AND (NOT HAIKU)) - target_link_libraries("${NAME}" PRIVATE "dl") - endif() - - if(_dgl_library) - # make sure that all code will see DGL_* definitions - target_link_libraries("${NAME}" PUBLIC - "${_dgl_library}" - "${_dgl_library}-definitions" - dgl-system-libs-definitions - dgl-system-libs) - # extra linkage for linux web view - if(LINUX AND _dpf_plugin_USE_WEB_VIEW) - target_link_libraries("${NAME}" PRIVATE "rt") - endif() - # add the files containing C++17 or Objective-C classes - dpf__add_plugin_specific_ui_sources("${NAME}" "${_dpf_plugin_USE_WEB_VIEW}") - endif() -endfunction() - -# ------------------------------------------------------------------------------ -# DPF private functions (prefixed with `dpf__`) -# ------------------------------------------------------------------------------ - -# Note: The $<0:> trick is to prevent MSVC from appending the build type -# to the output directory. -# - -# dpf__build_jack -# ------------------------------------------------------------------------------ -# -# Add build rules for a JACK/Standalone program. -# -function(dpf__build_jack NAME HAS_UI) - dpf__create_dummy_source_list(_no_srcs) - - dpf__add_executable("${NAME}-jack" ${_no_srcs}) - dpf__add_plugin_main("${NAME}-jack" "jack") - dpf__add_ui_main("${NAME}-jack" "jack" "${HAS_UI}") - target_link_libraries("${NAME}-jack" PRIVATE "${NAME}-dsp" "${NAME}-ui") - set_target_properties("${NAME}-jack" PROPERTIES - RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin/$<0:>" - OUTPUT_NAME "${NAME}") - - target_compile_definitions("${NAME}" PUBLIC "HAVE_JACK") - target_compile_definitions("${NAME}-jack" PRIVATE "HAVE_GETTIMEOFDAY") - - find_package(PkgConfig) - pkg_check_modules(SDL2 "sdl2") - if(SDL2_FOUND) - target_compile_definitions("${NAME}" PUBLIC "HAVE_SDL2") - target_include_directories("${NAME}-jack" PRIVATE ${SDL2_STATIC_INCLUDE_DIRS}) - target_link_libraries("${NAME}-jack" PRIVATE ${SDL2_STATIC_LIBRARIES}) - dpf__target_link_directories("${NAME}-jack" "${SDL2_STATIC_LIBRARY_DIRS}") - endif() - - if(APPLE OR WIN32) - target_compile_definitions("${NAME}" PUBLIC "HAVE_RTAUDIO") - else() - find_package(Threads) - pkg_check_modules(ALSA "alsa") - pkg_check_modules(PULSEAUDIO "libpulse-simple") - if(ALSA_FOUND) - target_compile_definitions("${NAME}" PUBLIC "HAVE_ALSA") - target_include_directories("${NAME}-jack" PRIVATE ${ALSA_INCLUDE_DIRS}) - target_link_libraries("${NAME}-jack" PRIVATE ${ALSA_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) - dpf__target_link_directories("${NAME}-jack" "${ALSA_LIBRARY_DIRS}") - endif() - if(PULSEAUDIO_FOUND) - target_compile_definitions("${NAME}" PUBLIC "HAVE_PULSEAUDIO") - target_include_directories("${NAME}-jack" PRIVATE ${PULSEAUDIO_INCLUDE_DIRS}) - target_link_libraries("${NAME}-jack" PRIVATE ${PULSEAUDIO_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) - dpf__target_link_directories("${NAME}-jack" "${PULSEAUDIO_LIBRARY_DIRS}") - endif() - if(ALSA_FOUND OR PULSEAUDIO_FOUND) - target_compile_definitions("${NAME}" PUBLIC "HAVE_RTAUDIO") - endif() - endif() - - # for RtAudio native fallback - if(APPLE) - find_library(APPLE_COREAUDIO_FRAMEWORK "CoreAudio") - find_library(APPLE_COREFOUNDATION_FRAMEWORK "CoreFoundation") - find_library(APPLE_COREMIDI_FRAMEWORK "CoreMIDI") - target_link_libraries("${NAME}-jack" PRIVATE - "${APPLE_COREAUDIO_FRAMEWORK}" - "${APPLE_COREFOUNDATION_FRAMEWORK}" - "${APPLE_COREMIDI_FRAMEWORK}") - elseif(WIN32) - target_link_libraries("${NAME}-jack" PRIVATE "ksuser" "mfplat" "mfuuid" "ole32" "winmm" "wmcodecdspuuid") - if(HAS_UI AND MINGW) - set_target_properties("${NAME}-jack" PROPERTIES WIN32_EXECUTABLE TRUE) - endif() - endif() -endfunction() - -# dpf__build_ladspa -# ------------------------------------------------------------------------------ -# -# Add build rules for a LADSPA plugin. -# -function(dpf__build_ladspa NAME) - dpf__create_dummy_source_list(_no_srcs) - - dpf__add_module("${NAME}-ladspa" ${_no_srcs}) - dpf__add_plugin_main("${NAME}-ladspa" "ladspa") - dpf__set_module_export_list("${NAME}-ladspa" "ladspa") - target_link_libraries("${NAME}-ladspa" PRIVATE "${NAME}-dsp") - set_target_properties("${NAME}-ladspa" PROPERTIES - LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin/$<0:>" - ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/obj/ladspa/$<0:>" - OUTPUT_NAME "${NAME}-ladspa" - PREFIX "") -endfunction() - -# dpf__build_dssi -# ------------------------------------------------------------------------------ -# -# Add build rules for a DSSI plugin. -# -function(dpf__build_dssi NAME HAS_UI) - find_package(PkgConfig) - pkg_check_modules(LIBLO "liblo") - if(NOT LIBLO_FOUND) - dpf__warn_once_only(missing_liblo - "liblo is not found, skipping the `dssi` plugin targets") - return() - endif() - - dpf__create_dummy_source_list(_no_srcs) - - dpf__add_module("${NAME}-dssi" ${_no_srcs}) - dpf__add_plugin_main("${NAME}-dssi" "dssi") - dpf__set_module_export_list("${NAME}-dssi" "dssi") - target_link_libraries("${NAME}-dssi" PRIVATE "${NAME}-dsp") - set_target_properties("${NAME}-dssi" PROPERTIES - LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin/$<0:>" - ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/obj/dssi/$<0:>" - OUTPUT_NAME "${NAME}-dssi" - PREFIX "") - - if(HAS_UI) - dpf__add_executable("${NAME}-dssi-ui" ${_no_srcs}) - dpf__add_ui_main("${NAME}-dssi-ui" "dssi" "${HAS_UI}") - target_link_libraries("${NAME}-dssi-ui" PRIVATE "${NAME}-ui") - set_target_properties("${NAME}-dssi-ui" PROPERTIES - RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin/${NAME}-dssi/$<0:>" - OUTPUT_NAME "${NAME}_ui") - - target_compile_definitions("${NAME}" PUBLIC "HAVE_LIBLO") - target_include_directories("${NAME}-dssi-ui" PRIVATE ${LIBLO_INCLUDE_DIRS}) - target_link_libraries("${NAME}-dssi-ui" PRIVATE ${LIBLO_LIBRARIES}) - dpf__target_link_directories("${NAME}-dssi-ui" "${LIBLO_LIBRARY_DIRS}") - endif() -endfunction() - -# dpf__build_lv2 -# ------------------------------------------------------------------------------ -# -# Add build rules for an LV2 plugin. -# -function(dpf__build_lv2 NAME HAS_UI MONOLITHIC EXTRA_UI_LINK_OPTS) - dpf__create_dummy_source_list(_no_srcs) - - dpf__add_module("${NAME}-lv2" ${_no_srcs}) - dpf__add_plugin_main("${NAME}-lv2" "lv2") - if(HAS_UI AND MONOLITHIC) - dpf__set_module_export_list("${NAME}-lv2" "lv2") - else() - dpf__set_module_export_list("${NAME}-lv2" "lv2-dsp") - endif() - target_link_libraries("${NAME}-lv2" PRIVATE "${NAME}-dsp") - set_target_properties("${NAME}-lv2" PROPERTIES - LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin/${NAME}.lv2/$<0:>" - ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/obj/lv2/$<0:>" - OUTPUT_NAME "${NAME}_dsp" - PREFIX "") - - if(HAS_UI) - if(MONOLITHIC) - dpf__add_ui_main("${NAME}-lv2" "lv2" "${HAS_UI}") - target_link_libraries("${NAME}-lv2" PRIVATE "${NAME}-ui") - target_link_options("${NAME}-lv2" PRIVATE "${EXTRA_UI_LINK_OPTS}") - set_target_properties("${NAME}-lv2" PROPERTIES - OUTPUT_NAME "${NAME}") - else() - dpf__add_module("${NAME}-lv2-ui" ${_no_srcs}) - dpf__add_ui_main("${NAME}-lv2-ui" "lv2" "${HAS_UI}") - dpf__set_module_export_list("${NAME}-lv2-ui" "lv2-ui") - target_link_options("${NAME}-lv2-ui" PRIVATE "${EXTRA_UI_LINK_OPTS}") - target_link_libraries("${NAME}-lv2-ui" PRIVATE "${NAME}-ui") - set_target_properties("${NAME}-lv2-ui" PROPERTIES - LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin/${NAME}.lv2/$<0:>" - ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/obj/lv2/$<0:>" - OUTPUT_NAME "${NAME}_ui" - PREFIX "") - endif() - endif() - - dpf__add_lv2_ttl_generator() - add_dependencies("${NAME}-lv2" lv2_ttl_generator) - - separate_arguments(CMAKE_CROSSCOMPILING_EMULATOR) - - add_custom_command(TARGET "${NAME}-lv2" POST_BUILD - COMMAND - ${CMAKE_CROSSCOMPILING_EMULATOR} - "$" - "$" - WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/bin/${NAME}.lv2" - DEPENDS lv2_ttl_generator) -endfunction() - -# dpf__build_vst2 -# ------------------------------------------------------------------------------ -# -# Add build rules for a VST2 plugin. -# -function(dpf__build_vst2 NAME HAS_UI EXTRA_UI_LINK_OPTS) - dpf__create_dummy_source_list(_no_srcs) - - dpf__add_module("${NAME}-vst2" ${_no_srcs}) - dpf__add_plugin_main("${NAME}-vst2" "vst2") - dpf__add_ui_main("${NAME}-vst2" "vst2" "${HAS_UI}") - dpf__set_module_export_list("${NAME}-vst2" "vst2") - target_link_libraries("${NAME}-vst2" PRIVATE "${NAME}-dsp" "${NAME}-ui") - target_link_options("${NAME}-vst2" PRIVATE "${EXTRA_UI_LINK_OPTS}") - set_target_properties("${NAME}-vst2" PROPERTIES - LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin/$<0:>" - ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/obj/vst2/$<0:>" - OUTPUT_NAME "${NAME}-vst2" - PREFIX "") - if(APPLE) - set_target_properties("${NAME}-vst2" PROPERTIES - LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin/${NAME}.vst/Contents/MacOS/$<0:>" - OUTPUT_NAME "${NAME}" - SUFFIX "") - set(INFO_PLIST_PROJECT_NAME "${NAME}") - configure_file("${DPF_ROOT_DIR}/utils/plugin.bundle/Contents/Info.plist" - "${PROJECT_BINARY_DIR}/bin/${NAME}.vst/Contents/Info.plist" @ONLY) - file(COPY "${DPF_ROOT_DIR}/utils/plugin.bundle/Contents/PkgInfo" - DESTINATION "${PROJECT_BINARY_DIR}/bin/${NAME}.vst/Contents") - endif() -endfunction() - -# dpf__determine_vst3_package_architecture -# ------------------------------------------------------------------------------ -# -# Determines the package architecture for a VST3 plugin target. -# -function(dpf__determine_vst3_package_architecture OUTPUT_VARIABLE) - # if set by variable, override the detection - if(DPF_VST3_ARCHITECTURE) - set("${OUTPUT_VARIABLE}" "${DPF_VST3_ARCHITECTURE}" PARENT_SCOPE) - return() - endif() - - # not used on Apple, which supports universal binary - if(APPLE) - set("${OUTPUT_VARIABLE}" "universal" PARENT_SCOPE) - return() - endif() - - # identify the target processor (special case of MSVC, problematic sometimes) - if(MSVC) - set(vst3_system_arch "${MSVC_CXX_ARCHITECTURE_ID}") - else() - set(vst3_system_arch "${CMAKE_SYSTEM_PROCESSOR}") - endif() - - # transform the processor name to a format that VST3 recognizes - if(vst3_system_arch MATCHES "^(x86_64|amd64|AMD64|x64|X64)$") - set(vst3_package_arch "x86_64") - elseif(vst3_system_arch MATCHES "^(i.86|x86|X86)$") - if(WIN32) - set(vst3_package_arch "x86") - else() - set(vst3_package_arch "i386") - endif() - elseif(vst3_system_arch MATCHES "^(armv[3-9][a-z]*|aarch64|loongarch64|ppc(64)?(le)?)$") - set(vst3_package_arch "${vst3_system_arch}") - else() - message(FATAL_ERROR "We don't know this architecture for VST3: ${vst3_system_arch}.") - endif() - - # TODO: the detections for Windows arm/arm64 when supported - - set("${OUTPUT_VARIABLE}" "${vst3_package_arch}" PARENT_SCOPE) -endfunction() - -# dpf__build_vst3 -# ------------------------------------------------------------------------------ -# -# Add build rules for a VST3 plugin. -# -function(dpf__build_vst3 NAME HAS_UI EXTRA_UI_LINK_OPTS) - dpf__determine_vst3_package_architecture(vst3_arch) - - dpf__create_dummy_source_list(_no_srcs) - - dpf__add_module("${NAME}-vst3" ${_no_srcs}) - dpf__add_plugin_main("${NAME}-vst3" "vst3") - dpf__add_ui_main("${NAME}-vst3" "vst3" "${HAS_UI}") - dpf__set_module_export_list("${NAME}-vst3" "vst3") - target_link_libraries("${NAME}-vst3" PRIVATE "${NAME}-dsp" "${NAME}-ui") - target_link_options("${NAME}-vst3" PRIVATE "${EXTRA_UI_LINK_OPTS}") - set_target_properties("${NAME}-vst3" PROPERTIES - ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/obj/vst3/$<0:>" - OUTPUT_NAME "${NAME}" - PREFIX "") - - if(APPLE) - set_target_properties("${NAME}-vst3" PROPERTIES - LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin/${NAME}.vst3/Contents/MacOS/$<0:>" - SUFFIX "") - elseif(WIN32) - set_target_properties("${NAME}-vst3" PROPERTIES - LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin/${NAME}.vst3/Contents/${vst3_arch}-win/$<0:>" SUFFIX ".vst3") - else() - set_target_properties("${NAME}-vst3" PROPERTIES - LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin/${NAME}.vst3/Contents/${vst3_arch}-linux/$<0:>") - endif() - - if(APPLE) - # Uses the same macOS bundle template as VST2 - set(INFO_PLIST_PROJECT_NAME "${NAME}") - configure_file("${DPF_ROOT_DIR}/utils/plugin.bundle/Contents/Info.plist" - "${PROJECT_BINARY_DIR}/bin/${NAME}.vst3/Contents/Info.plist" @ONLY) - file(COPY "${DPF_ROOT_DIR}/utils/plugin.bundle/Contents/PkgInfo" - DESTINATION "${PROJECT_BINARY_DIR}/bin/${NAME}.vst3/Contents") - endif() -endfunction() - -# dpf__build_clap -# ------------------------------------------------------------------------------ -# -# Add build rules for a CLAP plugin. -# -function(dpf__build_clap NAME HAS_UI EXTRA_UI_LINK_OPTS) - dpf__create_dummy_source_list(_no_srcs) - - dpf__add_module("${NAME}-clap" ${_no_srcs}) - dpf__add_plugin_main("${NAME}-clap" "clap") - dpf__add_ui_main("${NAME}-clap" "clap" "${HAS_UI}") - dpf__set_module_export_list("${NAME}-clap" "clap") - target_link_libraries("${NAME}-clap" PRIVATE "${NAME}-dsp" "${NAME}-ui") - target_link_options("${NAME}-clap" PRIVATE "${EXTRA_UI_LINK_OPTS}") - set_target_properties("${NAME}-clap" PROPERTIES - LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin/$<0:>" - ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/obj/clap/$<0:>" - OUTPUT_NAME "${NAME}" - PREFIX "" - SUFFIX ".clap") - - if(APPLE) - set_target_properties("${NAME}-clap" PROPERTIES - LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin/${NAME}.clap/Contents/MacOS/$<0:>" - OUTPUT_NAME "${NAME}" - SUFFIX "") - set(INFO_PLIST_PROJECT_NAME "${NAME}") - configure_file("${DPF_ROOT_DIR}/utils/plugin.bundle/Contents/Info.plist" - "${PROJECT_BINARY_DIR}/bin/${NAME}.clap/Contents/Info.plist" @ONLY) - file(COPY "${DPF_ROOT_DIR}/utils/plugin.bundle/Contents/PkgInfo" - DESTINATION "${PROJECT_BINARY_DIR}/bin/${NAME}.clap/Contents") - endif() -endfunction() - -# dpf__build_au -# ------------------------------------------------------------------------------ -# -# Add build rules for an AUv2 plugin. -# -function(dpf__build_au NAME HAS_UI) - dpf__create_dummy_source_list(_no_srcs) - - dpf__add_module("${NAME}-au" ${_no_srcs}) - dpf__add_plugin_main("${NAME}-au" "au") - dpf__add_ui_main("${NAME}-au" "au" "${HAS_UI}") - dpf__set_module_export_list("${NAME}-au" "au") - find_library(APPLE_AUDIOTOOLBOX_FRAMEWORK "AudioToolbox") - find_library(APPLE_AUDIOUNIT_FRAMEWORK "AudioUnit") - find_library(APPLE_COREFOUNDATION_FRAMEWORK "CoreFoundation") - target_compile_options("${NAME}-au" PRIVATE "-ObjC++") - target_link_libraries("${NAME}-au" PRIVATE - "${NAME}-dsp" - "${NAME}-ui" - "${APPLE_AUDIOTOOLBOX_FRAMEWORK}" - "${APPLE_AUDIOUNIT_FRAMEWORK}" - "${APPLE_COREFOUNDATION_FRAMEWORK}") - set_target_properties("${NAME}-au" PROPERTIES - LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin/${NAME}.component/Contents/MacOS/$<0:>" - ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/obj/au/$<0:>" - OUTPUT_NAME "${NAME}" - PREFIX "" - SUFFIX "") - - dpf__add_executable("${NAME}-export" ${_no_srcs}) - dpf__add_plugin_main("${NAME}-export" "export") - dpf__add_ui_main("${NAME}-export" "export" "${HAS_UI}") - target_link_libraries("${NAME}-export" PRIVATE "${NAME}-dsp" "${NAME}-ui") - - separate_arguments(CMAKE_CROSSCOMPILING_EMULATOR) - - add_custom_command(TARGET "${NAME}-au" POST_BUILD - COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} "$" "${NAME}" - WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/bin/${NAME}.component/Contents" - DEPENDS "${NAME}-export") - - add_dependencies("${NAME}-au" "${NAME}-export") - - file(COPY "${DPF_ROOT_DIR}/utils/plugin.bundle/Contents/PkgInfo" - DESTINATION "${PROJECT_BINARY_DIR}/bin/${NAME}.component/Contents") -endfunction() - -# dpf__build_static -# ------------------------------------------------------------------------------ -# -# Add build rules for a static library. -# -function(dpf__build_static NAME HAS_UI) - dpf__create_dummy_source_list(_no_srcs) - - dpf__add_module("${NAME}-static" ${_no_srcs} STATIC) - dpf__add_plugin_main("${NAME}-static" "static") - dpf__add_ui_main("${NAME}-static" "static" "${HAS_UI}") - target_link_libraries("${NAME}-static" PRIVATE "${NAME}-dsp" "${NAME}-ui") - - get_target_property(dsp_srcs "${NAME}-dsp" SOURCES) - get_target_property(ui_srcs "${NAME}-ui" SOURCES) - foreach(src ${dsp_srcs}) - target_sources("${NAME}-static" PRIVATE ${src}) - endforeach() - foreach(src ${ui_srcs}) - target_sources("${NAME}-static" PRIVATE ${src}) - endforeach() - - set_target_properties("${NAME}-static" PROPERTIES - ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin/$<0:>" - OUTPUT_NAME "${NAME}" - PREFIX "") -endfunction() - -# dpf__add_dgl_cairo -# ------------------------------------------------------------------------------ -# -# Add the Cairo variant of DGL, if not already available. -# -function(dpf__add_dgl_cairo SHARED_RESOURCES USE_FILE_BROWSER USE_WEB_VIEW) - if(TARGET dgl-cairo) - return() - endif() - - find_package(PkgConfig) - pkg_check_modules(CAIRO "cairo" REQUIRED) - - link_directories(${CAIRO_LIBRARY_DIRS}) - - dpf__add_static_library(dgl-cairo STATIC - "${DPF_ROOT_DIR}/dgl/src/Application.cpp" - "${DPF_ROOT_DIR}/dgl/src/ApplicationPrivateData.cpp" - "${DPF_ROOT_DIR}/dgl/src/Color.cpp" - "${DPF_ROOT_DIR}/dgl/src/EventHandlers.cpp" - "${DPF_ROOT_DIR}/dgl/src/Geometry.cpp" - "${DPF_ROOT_DIR}/dgl/src/ImageBase.cpp" - "${DPF_ROOT_DIR}/dgl/src/ImageBaseWidgets.cpp" - "${DPF_ROOT_DIR}/dgl/src/Layout.cpp" - "${DPF_ROOT_DIR}/dgl/src/SubWidget.cpp" - "${DPF_ROOT_DIR}/dgl/src/SubWidgetPrivateData.cpp" - "${DPF_ROOT_DIR}/dgl/src/TopLevelWidget.cpp" - "${DPF_ROOT_DIR}/dgl/src/TopLevelWidgetPrivateData.cpp" - "${DPF_ROOT_DIR}/dgl/src/Widget.cpp" - "${DPF_ROOT_DIR}/dgl/src/WidgetPrivateData.cpp" - "${DPF_ROOT_DIR}/dgl/src/Window.cpp" - "${DPF_ROOT_DIR}/dgl/src/WindowPrivateData.cpp" - "${DPF_ROOT_DIR}/dgl/src/Cairo.cpp") - if(SHARED_RESOURCES) - target_sources(dgl-cairo PRIVATE "${DPF_ROOT_DIR}/dgl/src/Resources.cpp") - else() - target_compile_definitions(dgl-cairo PUBLIC "DGL_NO_SHARED_RESOURCES") - endif() - if(APPLE) - target_sources(dgl-cairo PRIVATE - "${DPF_ROOT_DIR}/dgl/src/pugl.mm") - else() - target_sources(dgl-cairo PRIVATE - "${DPF_ROOT_DIR}/dgl/src/pugl.cpp") - endif() - target_include_directories(dgl-cairo PUBLIC - "${DPF_ROOT_DIR}/dgl") - target_include_directories(dgl-cairo PUBLIC - "${DPF_ROOT_DIR}/dgl/src/pugl-upstream/include") - - if(USE_FILE_BROWSER) - target_compile_definitions(dgl-cairo PUBLIC "DGL_USE_FILE_BROWSER") - endif() - - if(USE_WEB_VIEW) - target_compile_definitions(dgl-cairo PUBLIC "DGL_USE_FILE_BROWSER") - if(APPLE) - find_library(APPLE_WEBKIT_FRAMEWORK "WebKit") - target_link_libraries(dgl-cairo PRIVATE "${APPLE_WEBKIT_FRAMEWORK}") - elseif(WIN32) - target_sources(dgl-cairo PRIVATE - "${DPF_ROOT_DIR}/dgl/src/WebViewWin32.cpp") - set_source_files_properties("${DPF_ROOT_DIR}/dgl/src/WebViewWin32.cpp" - PROPERTIES - COMPILE_FLAGS - $,/std:c++17,-std=gnu++17>) - endif() - endif() - - dpf__add_dgl_system_libs() - target_link_libraries(dgl-cairo PRIVATE dgl-system-libs) - - add_library(dgl-cairo-definitions INTERFACE) - target_compile_definitions(dgl-cairo-definitions INTERFACE "DGL_CAIRO" "HAVE_CAIRO" "HAVE_DGL") - - target_include_directories(dgl-cairo PUBLIC ${CAIRO_INCLUDE_DIRS}) - if(MINGW) - target_link_libraries(dgl-cairo PRIVATE ${CAIRO_STATIC_LIBRARIES}) - else() - target_link_libraries(dgl-cairo PRIVATE ${CAIRO_LIBRARIES}) - endif() - target_link_libraries(dgl-cairo PRIVATE dgl-cairo-definitions) -endfunction() - -# dpf__add_dgl_external -# ------------------------------------------------------------------------------ -# -# Add the external variant of DGL, if not already available. -# -function(dpf__add_dgl_external USE_FILE_BROWSER USE_WEB_VIEW) - if(TARGET dgl-external) - return() - endif() - - dpf__add_static_library(dgl-external STATIC - "${DPF_ROOT_DIR}/dgl/src/Application.cpp" - "${DPF_ROOT_DIR}/dgl/src/ApplicationPrivateData.cpp" - "${DPF_ROOT_DIR}/dgl/src/Color.cpp" - "${DPF_ROOT_DIR}/dgl/src/EventHandlers.cpp" - "${DPF_ROOT_DIR}/dgl/src/Geometry.cpp" - "${DPF_ROOT_DIR}/dgl/src/ImageBase.cpp" - "${DPF_ROOT_DIR}/dgl/src/ImageBaseWidgets.cpp" - "${DPF_ROOT_DIR}/dgl/src/Layout.cpp" - "${DPF_ROOT_DIR}/dgl/src/SubWidget.cpp" - "${DPF_ROOT_DIR}/dgl/src/SubWidgetPrivateData.cpp" - "${DPF_ROOT_DIR}/dgl/src/TopLevelWidget.cpp" - "${DPF_ROOT_DIR}/dgl/src/TopLevelWidgetPrivateData.cpp" - "${DPF_ROOT_DIR}/dgl/src/Widget.cpp" - "${DPF_ROOT_DIR}/dgl/src/WidgetPrivateData.cpp" - "${DPF_ROOT_DIR}/dgl/src/Window.cpp" - "${DPF_ROOT_DIR}/dgl/src/WindowPrivateData.cpp" - "${DPF_ROOT_DIR}/dgl/src/Stub.cpp") - - if(APPLE) - target_sources(dgl-external PRIVATE - "${DPF_ROOT_DIR}/dgl/src/pugl.mm") - else() - target_sources(dgl-external PRIVATE - "${DPF_ROOT_DIR}/dgl/src/pugl.cpp") - endif() - target_include_directories(dgl-external PUBLIC - "${DPF_ROOT_DIR}/dgl") - target_include_directories(dgl-external PUBLIC - "${DPF_ROOT_DIR}/dgl/src/pugl-upstream/include") - - if(USE_FILE_BROWSER) - target_compile_definitions(dgl-external PUBLIC "DGL_USE_FILE_BROWSER") - endif() - - if(USE_WEB_VIEW) - target_compile_definitions(dgl-external PUBLIC "DGL_USE_WEB_VIEW") - if(APPLE) - find_library(APPLE_WEBKIT_FRAMEWORK "WebKit") - target_link_libraries(dgl-external PRIVATE "${APPLE_WEBKIT_FRAMEWORK}") - elseif(WIN32) - target_sources(dgl-external PRIVATE - "${DPF_ROOT_DIR}/dgl/src/WebViewWin32.cpp") - set_source_files_properties("${DPF_ROOT_DIR}/dgl/src/WebViewWin32.cpp" - PROPERTIES - COMPILE_FLAGS - $,/std:c++17,-std=gnu++17>) - endif() - endif() - - dpf__add_dgl_system_libs() - target_compile_definitions(dgl-external PUBLIC "DGL_NO_SHARED_RESOURCES") - target_link_libraries(dgl-external PRIVATE dgl-system-libs) - - add_library(dgl-external-definitions INTERFACE) - target_compile_definitions(dgl-external-definitions INTERFACE "DGL_EXTERNAL" "HAVE_DGL") - - target_include_directories(dgl-external PUBLIC "${OPENGL_INCLUDE_DIR}") - target_link_libraries(dgl-external PRIVATE dgl-external-definitions "${OPENGL_gl_LIBRARY}") -endfunction() - -# dpf__add_dgl_opengl -# ------------------------------------------------------------------------------ -# -# Add the OpenGL variant of DGL, if not already available. -# -function(dpf__add_dgl_opengl SHARED_RESOURCES USE_FILE_BROWSER USE_WEB_VIEW) - if(TARGET dgl-opengl) - return() - endif() - - if(NOT OpenGL_GL_PREFERENCE) - set(OpenGL_GL_PREFERENCE "LEGACY") - endif() - - find_package(OpenGL REQUIRED) - - dpf__add_static_library(dgl-opengl STATIC - "${DPF_ROOT_DIR}/dgl/src/Application.cpp" - "${DPF_ROOT_DIR}/dgl/src/ApplicationPrivateData.cpp" - "${DPF_ROOT_DIR}/dgl/src/Color.cpp" - "${DPF_ROOT_DIR}/dgl/src/EventHandlers.cpp" - "${DPF_ROOT_DIR}/dgl/src/Geometry.cpp" - "${DPF_ROOT_DIR}/dgl/src/ImageBase.cpp" - "${DPF_ROOT_DIR}/dgl/src/ImageBaseWidgets.cpp" - "${DPF_ROOT_DIR}/dgl/src/Layout.cpp" - "${DPF_ROOT_DIR}/dgl/src/SubWidget.cpp" - "${DPF_ROOT_DIR}/dgl/src/SubWidgetPrivateData.cpp" - "${DPF_ROOT_DIR}/dgl/src/TopLevelWidget.cpp" - "${DPF_ROOT_DIR}/dgl/src/TopLevelWidgetPrivateData.cpp" - "${DPF_ROOT_DIR}/dgl/src/Widget.cpp" - "${DPF_ROOT_DIR}/dgl/src/WidgetPrivateData.cpp" - "${DPF_ROOT_DIR}/dgl/src/Window.cpp" - "${DPF_ROOT_DIR}/dgl/src/WindowPrivateData.cpp" - "${DPF_ROOT_DIR}/dgl/src/OpenGL.cpp" - "${DPF_ROOT_DIR}/dgl/src/NanoVG.cpp") - if(SHARED_RESOURCES) - target_sources(dgl-opengl PRIVATE "${DPF_ROOT_DIR}/dgl/src/Resources.cpp") - else() - target_compile_definitions(dgl-opengl PUBLIC "DGL_NO_SHARED_RESOURCES") - endif() - if(APPLE) - target_sources(dgl-opengl PRIVATE - "${DPF_ROOT_DIR}/dgl/src/pugl.mm") - else() - target_sources(dgl-opengl PRIVATE - "${DPF_ROOT_DIR}/dgl/src/pugl.cpp") - endif() - target_include_directories(dgl-opengl PUBLIC - "${DPF_ROOT_DIR}/dgl") - target_include_directories(dgl-opengl PUBLIC - "${DPF_ROOT_DIR}/dgl/src/pugl-upstream/include") - - if(APPLE) - target_compile_definitions(dgl-opengl PUBLIC "GL_SILENCE_DEPRECATION") - endif() - - if(USE_FILE_BROWSER) - target_compile_definitions(dgl-opengl PUBLIC "DGL_USE_FILE_BROWSER") - endif() - - if(USE_WEB_VIEW) - target_compile_definitions(dgl-opengl PUBLIC "DGL_USE_WEB_VIEW") - if(APPLE) - find_library(APPLE_WEBKIT_FRAMEWORK "WebKit") - target_link_libraries(dgl-opengl PRIVATE "${APPLE_WEBKIT_FRAMEWORK}") - elseif(WIN32) - target_sources(dgl-opengl PRIVATE - "${DPF_ROOT_DIR}/dgl/src/WebViewWin32.cpp") - set_source_files_properties("${DPF_ROOT_DIR}/dgl/src/WebViewWin32.cpp" - PROPERTIES - COMPILE_FLAGS - $,/std:c++17,-std=gnu++17>) - endif() - endif() - - dpf__add_dgl_system_libs() - target_link_libraries(dgl-opengl PRIVATE dgl-system-libs) - - add_library(dgl-opengl-definitions INTERFACE) - target_compile_definitions(dgl-opengl-definitions INTERFACE "DGL_OPENGL" "HAVE_OPENGL" "HAVE_DGL") - - target_include_directories(dgl-opengl PUBLIC "${OPENGL_INCLUDE_DIR}") - target_link_libraries(dgl-opengl PRIVATE dgl-opengl-definitions "${OPENGL_gl_LIBRARY}") -endfunction() - -# dpf__add_dgl_opengl3 -# ------------------------------------------------------------------------------ -# -# Add the OpenGL3 variant of DGL, if not already available. -# -function(dpf__add_dgl_opengl3 SHARED_RESOURCES USE_FILE_BROWSER USE_WEB_VIEW) - if(TARGET dgl-opengl3) - return() - endif() - - if(NOT OpenGL_GL_PREFERENCE) - set(OpenGL_GL_PREFERENCE "LEGACY") - endif() - - find_package(OpenGL REQUIRED) - - dpf__add_static_library(dgl-opengl3 STATIC - "${DPF_ROOT_DIR}/dgl/src/Application.cpp" - "${DPF_ROOT_DIR}/dgl/src/ApplicationPrivateData.cpp" - "${DPF_ROOT_DIR}/dgl/src/Color.cpp" - "${DPF_ROOT_DIR}/dgl/src/EventHandlers.cpp" - "${DPF_ROOT_DIR}/dgl/src/Geometry.cpp" - "${DPF_ROOT_DIR}/dgl/src/ImageBase.cpp" - "${DPF_ROOT_DIR}/dgl/src/ImageBaseWidgets.cpp" - "${DPF_ROOT_DIR}/dgl/src/Layout.cpp" - "${DPF_ROOT_DIR}/dgl/src/SubWidget.cpp" - "${DPF_ROOT_DIR}/dgl/src/SubWidgetPrivateData.cpp" - "${DPF_ROOT_DIR}/dgl/src/TopLevelWidget.cpp" - "${DPF_ROOT_DIR}/dgl/src/TopLevelWidgetPrivateData.cpp" - "${DPF_ROOT_DIR}/dgl/src/Widget.cpp" - "${DPF_ROOT_DIR}/dgl/src/WidgetPrivateData.cpp" - "${DPF_ROOT_DIR}/dgl/src/Window.cpp" - "${DPF_ROOT_DIR}/dgl/src/WindowPrivateData.cpp" - "${DPF_ROOT_DIR}/dgl/src/OpenGL.cpp" - "${DPF_ROOT_DIR}/dgl/src/NanoVG.cpp") - if(SHARED_RESOURCES) - target_sources(dgl-opengl3 PRIVATE "${DPF_ROOT_DIR}/dgl/src/Resources.cpp") - else() - target_compile_definitions(dgl-opengl3 PUBLIC "DGL_NO_SHARED_RESOURCES") - endif() - if(APPLE) - target_sources(dgl-opengl3 PRIVATE - "${DPF_ROOT_DIR}/dgl/src/pugl.mm") - else() - target_sources(dgl-opengl3 PRIVATE - "${DPF_ROOT_DIR}/dgl/src/pugl.cpp") - endif() - target_include_directories(dgl-opengl3 PUBLIC - "${DPF_ROOT_DIR}/dgl") - target_include_directories(dgl-opengl3 PUBLIC - "${DPF_ROOT_DIR}/dgl/src/pugl-upstream/include") - - if(APPLE) - target_compile_definitions(dgl-opengl3 PUBLIC "GL_SILENCE_DEPRECATION") - endif() - - if(USE_FILE_BROWSER) - target_compile_definitions(dgl-opengl3 PUBLIC "DGL_USE_FILE_BROWSER") - endif() - - if(USE_WEB_VIEW) - target_compile_definitions(dgl-opengl3 PUBLIC "DGL_USE_WEB_VIEW") - if(APPLE) - find_library(APPLE_WEBKIT_FRAMEWORK "WebKit") - target_link_libraries(dgl-opengl3 PRIVATE "${APPLE_WEBKIT_FRAMEWORK}") - elseif(WIN32) - target_sources(dgl-opengl3 PRIVATE - "${DPF_ROOT_DIR}/dgl/src/WebViewWin32.cpp") - set_source_files_properties("${DPF_ROOT_DIR}/dgl/src/WebViewWin32.cpp" - PROPERTIES - COMPILE_FLAGS - $,/std:c++17,-std=gnu++17>) - endif() - endif() - - dpf__add_dgl_system_libs() - target_link_libraries(dgl-opengl3 PRIVATE dgl-system-libs) - - add_library(dgl-opengl3-definitions INTERFACE) - target_compile_definitions(dgl-opengl3-definitions INTERFACE "DGL_USE_OPENGL3" "DGL_OPENGL" "HAVE_OPENGL" "HAVE_DGL") - - target_include_directories(dgl-opengl3 PUBLIC "${OPENGL_INCLUDE_DIR}") - target_link_libraries(dgl-opengl3 PRIVATE dgl-opengl3-definitions "${OPENGL_gl_LIBRARY}") -endfunction() - -# dpf__add_dgl_vulkan -# ------------------------------------------------------------------------------ -# -# Add the Vulkan variant of DGL, if not already available. -# -function(dpf__add_dgl_vulkan SHARED_RESOURCES USE_FILE_BROWSER USE_WEB_VIEW) - if(TARGET dgl-vulkan) - return() - endif() - - find_package(Vulkan REQUIRED) - - dpf__add_static_library(dgl-vulkan STATIC - "${DPF_ROOT_DIR}/dgl/src/Application.cpp" - "${DPF_ROOT_DIR}/dgl/src/ApplicationPrivateData.cpp" - "${DPF_ROOT_DIR}/dgl/src/Color.cpp" - "${DPF_ROOT_DIR}/dgl/src/EventHandlers.cpp" - "${DPF_ROOT_DIR}/dgl/src/Geometry.cpp" - "${DPF_ROOT_DIR}/dgl/src/ImageBase.cpp" - "${DPF_ROOT_DIR}/dgl/src/ImageBaseWidgets.cpp" - "${DPF_ROOT_DIR}/dgl/src/Layout.cpp" - "${DPF_ROOT_DIR}/dgl/src/SubWidget.cpp" - "${DPF_ROOT_DIR}/dgl/src/SubWidgetPrivateData.cpp" - "${DPF_ROOT_DIR}/dgl/src/TopLevelWidget.cpp" - "${DPF_ROOT_DIR}/dgl/src/TopLevelWidgetPrivateData.cpp" - "${DPF_ROOT_DIR}/dgl/src/Widget.cpp" - "${DPF_ROOT_DIR}/dgl/src/WidgetPrivateData.cpp" - "${DPF_ROOT_DIR}/dgl/src/Window.cpp" - "${DPF_ROOT_DIR}/dgl/src/WindowPrivateData.cpp" - "${DPF_ROOT_DIR}/dgl/src/Vulkan.cpp") - if(NO_SHARED_RESOURCES) - target_sources(dgl-vulkan PRIVATE "${DPF_ROOT_DIR}/dgl/src/Resources.cpp") - else() - target_compile_definitions(dgl-vulkan PUBLIC "DGL_NO_SHARED_RESOURCES") - endif() - if(APPLE) - target_sources(dgl-vulkan PRIVATE - "${DPF_ROOT_DIR}/dgl/src/pugl.mm") - else() - target_sources(dgl-vulkan PRIVATE - "${DPF_ROOT_DIR}/dgl/src/pugl.cpp") - endif() - target_include_directories(dgl-vulkan PUBLIC - "${DPF_ROOT_DIR}/dgl") - target_include_directories(dgl-vulkan PUBLIC - "${DPF_ROOT_DIR}/dgl/src/pugl-upstream/include") - - if(APPLE) - target_compile_definitions(dgl-vulkan PUBLIC "GL_SILENCE_DEPRECATION") - endif() - - if(USE_FILE_BROWSER) - target_compile_definitions(dgl-vulkan PUBLIC "DGL_USE_FILE_BROWSER") - endif() - - if(USE_WEB_VIEW) - target_compile_definitions(dgl-vulkan PUBLIC "DGL_USE_WEB_VIEW") - if(APPLE) - find_library(APPLE_WEBKIT_FRAMEWORK "WebKit") - target_link_libraries(dgl-vulkan PRIVATE "${APPLE_WEBKIT_FRAMEWORK}") - elseif(WIN32) - target_sources(dgl-vulkan PRIVATE - "${DPF_ROOT_DIR}/dgl/src/WebViewWin32.cpp") - set_source_files_properties("${DPF_ROOT_DIR}/dgl/src/WebViewWin32.cpp" - PROPERTIES - COMPILE_FLAGS - $,/std:c++17,-std=gnu++17>) - endif() - endif() - - dpf__add_dgl_system_libs() - target_link_libraries(dgl-vulkan PRIVATE dgl-system-libs) - - add_library(dgl-vulkan-definitions INTERFACE) - target_compile_definitions(dgl-vulkan-definitions INTERFACE "DGL_VULKAN" "HAVE_VULKAN" "HAVE_DGL") - - target_include_directories(dgl-vulkan PUBLIC "${OPENGL_INCLUDE_DIR}") - target_link_libraries(dgl-vulkan PRIVATE dgl-vulkan-definitions "${OPENGL_gl_LIBRARY}") -endfunction() - -# dpf__add_plugin_specific_ui_sources -# ------------------------------------------------------------------------------ -# -# Compile system specific files -# -function(dpf__add_plugin_specific_ui_sources NAME USE_WEB_VIEW) - if(APPLE) - target_sources("${NAME}" PRIVATE - "${DPF_ROOT_DIR}/distrho/DistrhoUI_macOS.mm") - if(USE_WEB_VIEW) - find_library(APPLE_WEBKIT_FRAMEWORK "WebKit") - target_link_libraries("${NAME}" PRIVATE "${APPLE_WEBKIT_FRAMEWORK}") - endif() - elseif(WIN32 AND USE_WEB_VIEW) - target_sources("${NAME}" PRIVATE - "${DPF_ROOT_DIR}/distrho/DistrhoUI_win32.cpp") - set_source_files_properties("${DPF_ROOT_DIR}/distrho/DistrhoUI_win32.cpp" - PROPERTIES - COMPILE_FLAGS - $,/std:c++17,-std=gnu++17>) - target_link_libraries("${NAME}" PRIVATE "ole32" "uuid") - endif() -endfunction() - -# dpf__add_dgl_system_libs -# ------------------------------------------------------------------------------ -# -# Find system libraries required by DGL and add them as an interface target. -# -function(dpf__add_dgl_system_libs) - if(TARGET dgl-system-libs) - return() - endif() - add_library(dgl-system-libs INTERFACE) - add_library(dgl-system-libs-definitions INTERFACE) - if(APPLE) - find_library(APPLE_COCOA_FRAMEWORK "Cocoa") - find_library(APPLE_COREVIDEO_FRAMEWORK "CoreVideo") - target_link_libraries(dgl-system-libs INTERFACE "${APPLE_COCOA_FRAMEWORK}" "${APPLE_COREVIDEO_FRAMEWORK}") - elseif(EMSCRIPTEN) - elseif(HAIKU) - target_link_libraries(dgl-system-libs INTERFACE "be") - elseif(WIN32) - target_link_libraries(dgl-system-libs INTERFACE "comdlg32" "dwmapi" "gdi32") - else() - find_package(PkgConfig) - pkg_check_modules(DBUS "dbus-1") - if(DBUS_FOUND) - target_compile_definitions(dgl-system-libs-definitions INTERFACE "HAVE_DBUS") - target_include_directories(dgl-system-libs INTERFACE "${DBUS_INCLUDE_DIRS}") - target_link_libraries(dgl-system-libs INTERFACE "${DBUS_LIBRARIES}") - endif() - find_package(X11 REQUIRED) - target_compile_definitions(dgl-system-libs-definitions INTERFACE "HAVE_X11") - target_include_directories(dgl-system-libs INTERFACE "${X11_INCLUDE_DIR}") - target_link_libraries(dgl-system-libs INTERFACE "${X11_X11_LIB}") - if(X11_Xcursor_FOUND) - target_compile_definitions(dgl-system-libs-definitions INTERFACE "HAVE_XCURSOR") - target_link_libraries(dgl-system-libs INTERFACE "${X11_Xcursor_LIB}") - endif() - if(X11_Xext_FOUND) - target_compile_definitions(dgl-system-libs-definitions INTERFACE "HAVE_XEXT") - target_link_libraries(dgl-system-libs INTERFACE "${X11_Xext_LIB}") - endif() - if(X11_Xrandr_FOUND) - target_compile_definitions(dgl-system-libs-definitions INTERFACE "HAVE_XRANDR") - target_link_libraries(dgl-system-libs INTERFACE "${X11_Xrandr_LIB}") - endif() - if(X11_XSync_FOUND) - target_compile_definitions(dgl-system-libs-definitions INTERFACE "HAVE_XSYNC") - target_link_libraries(dgl-system-libs INTERFACE "${X11_XSync_LIB}") - endif() - endif() - - if(MSVC) - file(MAKE_DIRECTORY "${DPF_ROOT_DIR}/khronos/GL") - foreach(_gl_header "glext.h") - if(NOT EXISTS "${DPF_ROOT_DIR}/khronos/GL/${_gl_header}") - file(DOWNLOAD "https://www.khronos.org/registry/OpenGL/api/GL/${_gl_header}" "${DPF_ROOT_DIR}/khronos/GL/${_gl_header}" SHOW_PROGRESS) - endif() - endforeach() - foreach(_khr_header "khrplatform.h") - if(NOT EXISTS "${DPF_ROOT_DIR}/khronos/KHR/${_khr_header}") - file(DOWNLOAD "https://www.khronos.org/registry/EGL/api/KHR/${_khr_header}" "${DPF_ROOT_DIR}/khronos/KHR/${_khr_header}" SHOW_PROGRESS) - endif() - endforeach() - target_include_directories(dgl-system-libs-definitions INTERFACE "${DPF_ROOT_DIR}/khronos") - endif() - - target_link_libraries(dgl-system-libs INTERFACE dgl-system-libs-definitions) -endfunction() - -# dpf__add_executable -# ------------------------------------------------------------------------------ -# -# Adds an executable target, and set some default properties on the target. -# -function(dpf__add_executable NAME) - add_executable("${NAME}" ${ARGN}) - dpf__set_target_defaults("${NAME}") - if(MINGW) - target_link_libraries("${NAME}" PRIVATE "-static") - endif() -endfunction() - -# dpf__add_module -# ------------------------------------------------------------------------------ -# -# Adds a module target, and set some default properties on the target. -# -function(dpf__add_module NAME) - add_library("${NAME}" MODULE ${ARGN}) - dpf__set_target_defaults("${NAME}") - if(APPLE) - set_target_properties("${NAME}" PROPERTIES SUFFIX ".dylib") - elseif(MINGW) - target_link_libraries("${NAME}" PRIVATE "-static") - endif() -endfunction() - -# dpf__add_static_library -# ------------------------------------------------------------------------------ -# -# Adds a static library target, and set some default properties on the target. -# -function(dpf__add_static_library NAME) - add_library("${NAME}" STATIC ${ARGN}) - dpf__set_target_defaults("${NAME}") -endfunction() - -# dpf__set_module_export_list -# ------------------------------------------------------------------------------ -# -# Applies a list of exported symbols to the module target. -# -function(dpf__set_module_export_list NAME EXPORTS) - if(WIN32) - target_sources("${NAME}" PRIVATE "${DPF_ROOT_DIR}/utils/symbols/${EXPORTS}.def") - elseif(APPLE) - set_property(TARGET "${NAME}" APPEND PROPERTY LINK_OPTIONS - "-Xlinker" "-exported_symbols_list" - "-Xlinker" "${DPF_ROOT_DIR}/utils/symbols/${EXPORTS}.exp") - else() - set_property(TARGET "${NAME}" APPEND PROPERTY LINK_OPTIONS - "-Xlinker" "--version-script=${DPF_ROOT_DIR}/utils/symbols/${EXPORTS}.version") - endif() -endfunction() - -# dpf__set_target_defaults -# ------------------------------------------------------------------------------ -# -# Set default properties which must apply to all DPF-defined targets. -# -function(dpf__set_target_defaults NAME) - set_target_properties("${NAME}" PROPERTIES - POSITION_INDEPENDENT_CODE TRUE - C_VISIBILITY_PRESET "hidden" - CXX_VISIBILITY_PRESET "hidden" - VISIBILITY_INLINES_HIDDEN TRUE) - if(WIN32) - target_compile_definitions("${NAME}" PUBLIC "NOMINMAX") - endif() - if (MINGW) - target_compile_options("${NAME}" PUBLIC "-mstackrealign") - endif() - if (MSVC) - target_compile_options("${NAME}" PUBLIC "/UTF-8") - target_compile_definitions("${NAME}" PUBLIC "_CRT_SECURE_NO_WARNINGS") - endif() - if (CMAKE_COMPILER_IS_GNUCXX) - target_compile_options("${NAME}" PUBLIC "-fno-gnu-unique") - endif() - if ((NOT APPLE) AND (NOT MSVC)) - target_link_options("${NAME}" PUBLIC "-Wl,--no-undefined") - endif() -endfunction() - -# dpf__add_plugin_main -# ------------------------------------------------------------------------------ -# -# Adds plugin code to the given target. -# -function(dpf__add_plugin_main NAME TARGET) - target_sources("${NAME}" PRIVATE - "${DPF_ROOT_DIR}/distrho/DistrhoPluginMain.cpp") - dpf__add_plugin_target_definition("${NAME}" "${TARGET}") -endfunction() - -# dpf__add_ui_main -# ------------------------------------------------------------------------------ -# -# Adds UI code to the given target (only if the target has UI). -# -function(dpf__add_ui_main NAME TARGET HAS_UI) - if(HAS_UI) - target_sources("${NAME}" PRIVATE - "${DPF_ROOT_DIR}/distrho/DistrhoUIMain.cpp") - dpf__add_plugin_target_definition("${NAME}" "${TARGET}") - endif() -endfunction() - -# dpf__add_plugin_target_definition -# ------------------------------------------------------------------------------ -# -# Adds the plugins target macro definition. -# This selects which entry file is compiled according to the target type. -# -function(dpf__add_plugin_target_definition NAME TARGET) - string(TOUPPER "${TARGET}" _upperTarget) - target_compile_definitions("${NAME}" PRIVATE "DISTRHO_PLUGIN_TARGET_${_upperTarget}") -endfunction() - -# dpf__add_lv2_ttl_generator -# ------------------------------------------------------------------------------ -# -# Build the LV2 TTL generator. -# -function(dpf__add_lv2_ttl_generator) - if(TARGET lv2_ttl_generator) - return() - endif() - add_executable(lv2_ttl_generator "${DPF_ROOT_DIR}/utils/lv2-ttl-generator/lv2_ttl_generator.c") - if((NOT WIN32) AND (NOT APPLE) AND (NOT HAIKU)) - target_link_libraries(lv2_ttl_generator PRIVATE "dl") - endif() -endfunction() - -# dpf__ensure_sources_non_empty -# ------------------------------------------------------------------------------ -# -# Ensure the given source list contains at least one file. -# The function appends an empty source file to the list if necessary. -# This is useful when CMake does not permit to add targets without sources. -# -function(dpf__ensure_sources_non_empty VAR) - if(NOT "" STREQUAL "${${VAR}}") - return() - endif() - set(_file "${CMAKE_CURRENT_BINARY_DIR}/_dpf_empty.c") - if(NOT EXISTS "${_file}") - file(WRITE "${_file}" "") - endif() - set("${VAR}" "${_file}" PARENT_SCOPE) -endfunction() - -# dpf__create_dummy_source_list -# ------------------------------------------------------------------------------ -# -# Create a dummy source list which is equivalent to compiling nothing. -# This is only for compatibility with older CMake versions, which refuse to add -# targets without any sources. -# -macro(dpf__create_dummy_source_list VAR) - set("${VAR}") - if(CMAKE_VERSION VERSION_LESS "3.11") - dpf__ensure_sources_non_empty("${VAR}") - endif() -endmacro() - -# dpf__target_link_directories -# ------------------------------------------------------------------------------ -# -# Call `target_link_directories` if cmake >= 3.13, -# otherwise fallback to global `link_directories`. -# -macro(dpf__target_link_directories NAME DIRS) - if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.13") - target_link_directories("${NAME}" PUBLIC ${DIRS}) - else() - link_directories(${DIRS}) - endif() -endmacro() - -# dpf__warn_once -# ------------------------------------------------------------------------------ -# -# Prints a warning message once only. -# -function(dpf__warn_once_only TOKEN MESSAGE) - get_property(_warned GLOBAL PROPERTY "dpf__have_warned_${TOKEN}") - if(NOT _warned) - set_property(GLOBAL PROPERTY "dpf__have_warned_${TOKEN}" TRUE) - message(WARNING "${MESSAGE}") - endif() -endfunction() diff --git a/dpf/dgl/FileBrowserDialog.hpp b/dpf/dgl/FileBrowserDialog.hpp deleted file mode 100644 index 05c53e0..0000000 --- a/dpf/dgl/FileBrowserDialog.hpp +++ /dev/null @@ -1,28 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2022 Filipe Coelho - * - * Permission to use, copy, modify, and/or distribute this software for any purpose with - * or without fee is hereby granted, provided that the above copyright notice and this - * permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#ifndef DGL_FILE_BROWSER_DIALOG_HPP_INCLUDED -#define DGL_FILE_BROWSER_DIALOG_HPP_INCLUDED - -#include "Base.hpp" - -START_NAMESPACE_DGL - -#include "../distrho/extra/FileBrowserDialogImpl.hpp" - -END_NAMESPACE_DGL - -#endif // DGL_FILE_BROWSER_DIALOG_HPP_INCLUDED diff --git a/dpf/dgl/Layout.hpp b/dpf/dgl/Layout.hpp deleted file mode 100644 index e4cfc3d..0000000 --- a/dpf/dgl/Layout.hpp +++ /dev/null @@ -1,71 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2021 Filipe Coelho - * - * Permission to use, copy, modify, and/or distribute this software for any purpose with - * or without fee is hereby granted, provided that the above copyright notice and this - * permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#ifndef DGL_LAYOUT_HPP_INCLUDED -#define DGL_LAYOUT_HPP_INCLUDED - -#include "Geometry.hpp" - -#include - -START_NAMESPACE_DGL - -class SubWidget; - -// -------------------------------------------------------------------------------------------------------------------- - -// NOTE: under development, API to be finalized and documented soon - -enum SizeHint { - Expanding, - Fixed -}; - -struct SubWidgetWithSizeHint { - SubWidget* widget; - SizeHint sizeHint; -}; - -template -struct Layout -{ - std::list widgets; - uint setAbsolutePos(int x, int y, uint padding); - void setSize(uint size, uint padding); -}; - -typedef Layout HorizontalLayout; -typedef Layout VerticalLayout; - -struct HorizontallyStackedVerticalLayout -{ - std::list items; - Size adjustSize(uint padding); // TODO - void setAbsolutePos(int x, int y, uint padding); -}; - -struct VerticallyStackedHorizontalLayout -{ - std::list items; - Size adjustSize(uint padding); - void setAbsolutePos(int x, int y, uint padding); -}; - -// -------------------------------------------------------------------------------------------------------------------- - -END_NAMESPACE_DGL - -#endif // DGL_LAYOUT_HPP_INCLUDED diff --git a/dpf/dgl/Makefile b/dpf/dgl/Makefile index a58b90b..8776c4d 100644 --- a/dpf/dgl/Makefile +++ b/dpf/dgl/Makefile @@ -43,7 +43,6 @@ OBJS_common = \ $(BUILD_DIR)/dgl/Geometry.cpp.o \ $(BUILD_DIR)/dgl/ImageBase.cpp.o \ $(BUILD_DIR)/dgl/ImageBaseWidgets.cpp.o \ - $(BUILD_DIR)/dgl/Layout.cpp.o \ $(BUILD_DIR)/dgl/Resources.cpp.o \ $(BUILD_DIR)/dgl/SubWidget.cpp.o \ $(BUILD_DIR)/dgl/SubWidgetPrivateData.cpp.o \ diff --git a/dpf/dgl/Vulkan.hpp b/dpf/dgl/Vulkan.hpp deleted file mode 100644 index 4fd7c45..0000000 --- a/dpf/dgl/Vulkan.hpp +++ /dev/null @@ -1,103 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2021 Filipe Coelho - * - * Permission to use, copy, modify, and/or distribute this software for any purpose with - * or without fee is hereby granted, provided that the above copyright notice and this - * permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#ifndef DGL_VULKAN_HPP_INCLUDED -#define DGL_VULKAN_HPP_INCLUDED - -#include "ImageBase.hpp" - -#include - -START_NAMESPACE_DGL - -// -------------------------------------------------------------------------------------------------------------------- - -/** - Vulkan Graphics context. - */ -struct VulkanGraphicsContext : GraphicsContext -{ -}; - -// -------------------------------------------------------------------------------------------------------------------- - -/** - Vulkan Image class. - - TODO ... - */ -class VulkanImage : public ImageBase -{ -public: - /** - Constructor for a null Image. - */ - VulkanImage(); - - /** - Constructor using raw image data. - @note @a rawData must remain valid for the lifetime of this Image. - */ - VulkanImage(const char* rawData, uint width, uint height, ImageFormat format); - - /** - Constructor using raw image data. - @note @a rawData must remain valid for the lifetime of this Image. - */ - VulkanImage(const char* rawData, const Size& size, ImageFormat format); - - /** - Constructor using another image data. - */ - VulkanImage(const VulkanImage& image); - - /** - Destructor. - */ - ~VulkanImage() override; - - /** - Load image data from memory. - @note @a rawData must remain valid for the lifetime of this Image. - */ - void loadFromMemory(const char* rawData, - const Size& size, - ImageFormat format = kImageFormatBGRA) noexcept override; - - /** - Draw this image at position @a pos using the graphics context @a context. - */ - void drawAt(const GraphicsContext& context, const Point& pos) override; - - /** - TODO document this. - */ - VulkanImage& operator=(const VulkanImage& image) noexcept; - - // FIXME this should not be needed - inline void loadFromMemory(const char* rdata, uint w, uint h, ImageFormat fmt = kImageFormatBGRA) - { loadFromMemory(rdata, Size(w, h), fmt); }; - inline void draw(const GraphicsContext& context) - { drawAt(context, Point(0, 0)); }; - inline void drawAt(const GraphicsContext& context, int x, int y) - { drawAt(context, Point(x, y)); }; -}; - -// -------------------------------------------------------------------------------------------------------------------- - -END_NAMESPACE_DGL - -#endif diff --git a/dpf/dgl/WebView.hpp b/dpf/dgl/WebView.hpp deleted file mode 100644 index 2c84faf..0000000 --- a/dpf/dgl/WebView.hpp +++ /dev/null @@ -1,28 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2025 Filipe Coelho - * - * Permission to use, copy, modify, and/or distribute this software for any purpose with - * or without fee is hereby granted, provided that the above copyright notice and this - * permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#ifndef DGL_WEB_VIEW_HPP_INCLUDED -#define DGL_WEB_VIEW_HPP_INCLUDED - -#include "Base.hpp" - -START_NAMESPACE_DGL - -#include "../distrho/extra/WebViewImpl.hpp" - -END_NAMESPACE_DGL - -#endif // DGL_WEB_VIEW_HPP_INCLUDED diff --git a/dpf/dgl/src/Application.cpp b/dpf/dgl/src/Application.cpp index ad5b2be..09f57e1 100644 --- a/dpf/dgl/src/Application.cpp +++ b/dpf/dgl/src/Application.cpp @@ -131,6 +131,10 @@ Application::Application(int argc, char* argv[]) #if defined(HAVE_X11) && defined(DISTRHO_OS_LINUX) && defined(DGL_USE_WEB_VIEW) if (argc >= 2 && std::strcmp(argv[1], "dpf-ld-linux-webview") == 0) std::exit(dpf_webview_start(argc, argv)); + #else + // unused + (void)argc; + (void)argv; #endif // build config sentinels diff --git a/dpf/dgl/src/Layout.cpp b/dpf/dgl/src/Layout.cpp deleted file mode 100644 index 814ed84..0000000 --- a/dpf/dgl/src/Layout.cpp +++ /dev/null @@ -1,201 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2024 Filipe Coelho - * - * Permission to use, copy, modify, and/or distribute this software for any purpose with - * or without fee is hereby granted, provided that the above copyright notice and this - * permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include "../Layout.hpp" -#include "../SubWidget.hpp" - -START_NAMESPACE_DGL - -typedef std::list::iterator SubWidgetWithSizeHintIterator; -typedef std::list::iterator HorizontalLayoutIterator; -typedef std::list::iterator VerticalLayoutIterator; - -// -------------------------------------------------------------------------------------------------------------------- - -template<> // horizontal -uint Layout::setAbsolutePos(int x, const int y, const uint padding) -{ - uint maxHeight = 0; - - for (SubWidgetWithSizeHintIterator it=widgets.begin(), end=widgets.end(); it != end; ++it) - { - SubWidgetWithSizeHint& s(*it); - maxHeight = std::max(maxHeight, s.widget->getHeight()); - s.widget->setAbsolutePos(x, y); - x += static_cast(s.widget->getWidth()); - x += static_cast(padding); - } - - return maxHeight; -} - -template<> // vertical -uint Layout::setAbsolutePos(const int x, int y, const uint padding) -{ - uint maxWidth = 0; - - for (SubWidgetWithSizeHintIterator it=widgets.begin(), end=widgets.end(); it != end; ++it) - { - SubWidgetWithSizeHint& s(*it); - maxWidth = std::max(maxWidth, s.widget->getWidth()); - s.widget->setAbsolutePos(x, y); - y += static_cast(s.widget->getHeight()); - y += static_cast(padding); - } - - return maxWidth; -} - -template<> // horizontal -void Layout::setSize(const uint width, const uint padding) -{ - uint maxHeight = 0; - uint nonFixedWidth = width; - uint numDynamiclySizedWidgets = 0; - - for (SubWidgetWithSizeHintIterator it=widgets.begin(), end=widgets.end(); it != end; ++it) - { - SubWidgetWithSizeHint& s(*it); - maxHeight = std::max(maxHeight, s.widget->getHeight()); - - if (s.sizeHint == Fixed) - nonFixedWidth -= s.widget->getWidth(); - else - ++numDynamiclySizedWidgets; - } - - if (const size_t numWidgets = widgets.size()) - nonFixedWidth -= padding * static_cast(numWidgets - 1); - - const uint widthPerWidget = numDynamiclySizedWidgets != 0 ? nonFixedWidth / numDynamiclySizedWidgets : 0; - - for (SubWidgetWithSizeHintIterator it=widgets.begin(), end=widgets.end(); it != end; ++it) - { - SubWidgetWithSizeHint& s(*it); - if (s.sizeHint != Fixed) - s.widget->setSize(widthPerWidget, maxHeight); - else - s.widget->setHeight(maxHeight); - } -} - -template<> // vertical -void Layout::setSize(const uint height, const uint padding) -{ - uint biggestWidth = 0; - uint nonFixedHeight = height; - uint numDynamiclySizedWidgets = 0; - - for (SubWidgetWithSizeHintIterator it=widgets.begin(), end=widgets.end(); it != end; ++it) - { - SubWidgetWithSizeHint& s(*it); - biggestWidth = std::max(biggestWidth, s.widget->getWidth()); - - if (s.sizeHint == Fixed) - nonFixedHeight -= s.widget->getHeight(); - else - ++numDynamiclySizedWidgets; - } - - if (const size_t numWidgets = widgets.size()) - nonFixedHeight -= padding * static_cast(numWidgets - 1); - - const uint heightPerWidget = numDynamiclySizedWidgets != 0 ? nonFixedHeight / numDynamiclySizedWidgets : 0; - - for (SubWidgetWithSizeHintIterator it=widgets.begin(), end=widgets.end(); it != end; ++it) - { - SubWidgetWithSizeHint& s(*it); - if (s.sizeHint != Fixed) - s.widget->setSize(biggestWidth, heightPerWidget); - else - s.widget->setWidth(biggestWidth); - } -} - -// -------------------------------------------------------------------------------------------------------------------- - -/* TODO -void HorizontallyStackedVerticalLayout::adjustSize(const uint padding) -{ -} -*/ - -void HorizontallyStackedVerticalLayout::setAbsolutePos(int x, const int y, const uint padding) -{ - for (VerticalLayoutIterator it=items.begin(), end=items.end(); it != end; ++it) - { - VerticalLayout* l(*it); - x += static_cast(l->setAbsolutePos(x, y, padding)); - x += static_cast(padding); - } -} - -// -------------------------------------------------------------------------------------------------------------------- - -Size VerticallyStackedHorizontalLayout::adjustSize(const uint padding) -{ - uint biggestWidth = 0; - uint totalHeight = 0; - - // iterate all widgets to find which one is the biggest (horizontally) - for (HorizontalLayoutIterator it=items.begin(), end=items.end(); it != end; ++it) - { - HorizontalLayout* const l(*it); - uint width = 0; - uint height = 0; - - for (SubWidgetWithSizeHintIterator it2=l->widgets.begin(), end2=l->widgets.end(); it2 != end2; ++it2) - { - SubWidgetWithSizeHint& s(*it2); - - if (width != 0) - width += padding; - - width += s.widget->getWidth(); - height = std::max(height, s.widget->getHeight()); - } - - biggestWidth = std::max(biggestWidth, width); - - if (totalHeight != 0) - totalHeight += padding; - - totalHeight += height; - } - - // now make all horizontal lines the same width - for (HorizontalLayoutIterator it=items.begin(), end=items.end(); it != end; ++it) - { - HorizontalLayout* const l(*it); - l->setSize(biggestWidth, padding); - } - - return Size(biggestWidth, totalHeight); -} - -void VerticallyStackedHorizontalLayout::setAbsolutePos(const int x, int y, const uint padding) -{ - for (HorizontalLayoutIterator it=items.begin(), end=items.end(); it != end; ++it) - { - HorizontalLayout* l(*it); - y += static_cast(l->setAbsolutePos(x, y, padding)); - y += static_cast(padding); - } -} - -// -------------------------------------------------------------------------------------------------------------------- - -END_NAMESPACE_DGL diff --git a/dpf/dgl/src/Stub.cpp b/dpf/dgl/src/Stub.cpp deleted file mode 100644 index 647d8c9..0000000 --- a/dpf/dgl/src/Stub.cpp +++ /dev/null @@ -1,193 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2024 Filipe Coelho - * - * Permission to use, copy, modify, and/or distribute this software for any purpose with - * or without fee is hereby granted, provided that the above copyright notice and this - * permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include "Color.hpp" -#include "SubWidgetPrivateData.hpp" -#include "TopLevelWidgetPrivateData.hpp" -#include "WidgetPrivateData.hpp" -#include "WindowPrivateData.hpp" - -START_NAMESPACE_DGL - -// -------------------------------------------------------------------------------------------------------------------- - -static void notImplemented(const char* const name) -{ - d_stderr2("stub function not implemented: %s", name); -} - -// -------------------------------------------------------------------------------------------------------------------- -// Color - -void Color::setFor(const GraphicsContext&, bool) -{ - notImplemented("Color::setFor"); -} - -// -------------------------------------------------------------------------------------------------------------------- -// Line - -template -void Line::draw(const GraphicsContext& context, T) -{ - notImplemented("Line::draw"); -} - -template -void Line::draw() -{ - notImplemented("Line::draw"); -} - -template class Line; -template class Line; -template class Line; -template class Line; -template class Line; -template class Line; - -// -------------------------------------------------------------------------------------------------------------------- -// Circle - -template -void Circle::draw(const GraphicsContext&) -{ - notImplemented("Circle::draw"); -} - -template -void Circle::drawOutline(const GraphicsContext&, T) -{ - notImplemented("Circle::drawOutline"); -} - -template -void Circle::draw() -{ - notImplemented("Circle::draw"); -} - -template -void Circle::drawOutline() -{ - notImplemented("Circle::drawOutline"); -} - -template class Circle; -template class Circle; -template class Circle; -template class Circle; -template class Circle; -template class Circle; - -// -------------------------------------------------------------------------------------------------------------------- -// Triangle - -template -void Triangle::draw(const GraphicsContext&) -{ - notImplemented("Triangle::draw"); -} - -template -void Triangle::drawOutline(const GraphicsContext&, T) -{ - notImplemented("Triangle::drawOutline"); -} - -template -void Triangle::draw() -{ - notImplemented("Triangle::draw"); -} - -template -void Triangle::drawOutline() -{ - notImplemented("Triangle::drawOutline"); -} - -template class Triangle; -template class Triangle; -template class Triangle; -template class Triangle; -template class Triangle; -template class Triangle; - -// -------------------------------------------------------------------------------------------------------------------- -// Rectangle - -template -void Rectangle::draw(const GraphicsContext&) -{ - notImplemented("Rectangle::draw"); -} - -template -void Rectangle::drawOutline(const GraphicsContext&, T) -{ - notImplemented("Rectangle::drawOutline"); -} - -template -void Rectangle::draw() -{ - notImplemented("Rectangle::draw"); -} - -template -void Rectangle::drawOutline() -{ - notImplemented("Rectangle::drawOutline"); -} - -template class Rectangle; -template class Rectangle; -template class Rectangle; -template class Rectangle; -template class Rectangle; -template class Rectangle; - -// -------------------------------------------------------------------------------------------------------------------- - -void SubWidget::PrivateData::display(uint, uint, double) -{ -} - -// -------------------------------------------------------------------------------------------------------------------- - -void TopLevelWidget::PrivateData::display() -{ -} - -// -------------------------------------------------------------------------------------------------------------------- - -void Window::PrivateData::renderToPicture(const char*, const GraphicsContext&, uint, uint) -{ - notImplemented("Window::PrivateData::renderToPicture"); -} - -// -------------------------------------------------------------------------------------------------------------------- - -const GraphicsContext& Window::PrivateData::getGraphicsContext() const noexcept -{ - GraphicsContext& context((GraphicsContext&)graphicsContext); - return context; -} - -// -------------------------------------------------------------------------------------------------------------------- - -END_NAMESPACE_DGL diff --git a/dpf/dgl/src/Vulkan.cpp b/dpf/dgl/src/Vulkan.cpp deleted file mode 100644 index 2fc9758..0000000 --- a/dpf/dgl/src/Vulkan.cpp +++ /dev/null @@ -1,250 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2021 Filipe Coelho - * - * Permission to use, copy, modify, and/or distribute this software for any purpose with - * or without fee is hereby granted, provided that the above copyright notice and this - * permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include "../Vulkan.hpp" -#include "../Color.hpp" - -#include "SubWidgetPrivateData.hpp" -#include "TopLevelWidgetPrivateData.hpp" -#include "WidgetPrivateData.hpp" -#include "WindowPrivateData.hpp" - -START_NAMESPACE_DGL - -// ----------------------------------------------------------------------- - -static void notImplemented(const char* const name) -{ - d_stderr2("vulkan function not implemented: %s", name); -} - -// ----------------------------------------------------------------------- -// Color - -void Color::setFor(const GraphicsContext&, bool) -{ - notImplemented("Color::setFor"); -} - -// ----------------------------------------------------------------------- -// Line - -template -void Line::draw(const GraphicsContext&, T) -{ - notImplemented("Line::draw"); -} - -template -void Line::draw() -{ - notImplemented("Line::draw"); -} - -template class Line; -template class Line; -template class Line; -template class Line; -template class Line; -template class Line; - -// ----------------------------------------------------------------------- -// Circle - -template -void Circle::draw(const GraphicsContext&) -{ - notImplemented("Circle::draw"); -} - -template -void Circle::drawOutline(const GraphicsContext&, T) -{ - notImplemented("Circle::drawOutline"); -} - -template -void Circle::draw() -{ - notImplemented("Circle::draw"); -} - -template -void Circle::drawOutline() -{ - notImplemented("Circle::drawOutline"); -} - -template class Circle; -template class Circle; -template class Circle; -template class Circle; -template class Circle; -template class Circle; - -// ----------------------------------------------------------------------- -// Triangle - -template -void Triangle::draw(const GraphicsContext&) -{ - notImplemented("Triangle::draw"); -} - -template -void Triangle::drawOutline(const GraphicsContext&, T) -{ - notImplemented("Triangle::drawOutline"); -} - -template -void Triangle::draw() -{ - notImplemented("Triangle::draw"); -} - -template -void Triangle::drawOutline() -{ - notImplemented("Triangle::drawOutline"); -} - -template class Triangle; -template class Triangle; -template class Triangle; -template class Triangle; -template class Triangle; -template class Triangle; - - -// ----------------------------------------------------------------------- -// Rectangle - -template -void Rectangle::draw(const GraphicsContext&) -{ - notImplemented("Rectangle::draw"); -} - -template -void Rectangle::drawOutline(const GraphicsContext&, T) -{ - notImplemented("Rectangle::drawOutline"); -} - -template -void Rectangle::draw() -{ - notImplemented("Rectangle::draw"); -} - -template -void Rectangle::drawOutline() -{ - notImplemented("Rectangle::drawOutline"); -} - -template class Rectangle; -template class Rectangle; -template class Rectangle; -template class Rectangle; -template class Rectangle; -template class Rectangle; - -// ----------------------------------------------------------------------- -// VulkanImage - -VulkanImage::VulkanImage() - : ImageBase() {} - -VulkanImage::VulkanImage(const char* const rdata, const uint w, const uint h, const ImageFormat fmt) - : ImageBase(rdata, w, h, fmt) {} - -VulkanImage::VulkanImage(const char* const rdata, const Size& s, const ImageFormat fmt) - : ImageBase(rdata, s, fmt) {} - -VulkanImage::VulkanImage(const VulkanImage& image) - : ImageBase(image.rawData, image.size, image.format) {} - -VulkanImage::~VulkanImage() {} - -void VulkanImage::loadFromMemory(const char* const rdata, const Size& s, const ImageFormat fmt) noexcept -{ - ImageBase::loadFromMemory(rdata, s, fmt); -} - -void VulkanImage::drawAt(const GraphicsContext&, const Point&) -{ -} - -VulkanImage& VulkanImage::operator=(const VulkanImage& image) noexcept -{ - rawData = image.rawData; - size = image.size; - format = image.format; - return *this; -} - -// ----------------------------------------------------------------------- - -void SubWidget::PrivateData::display(const uint width, const uint height, const double autoScaleFactor) -{ - // TODO - - selfw->pData->displaySubWidgets(width, height, autoScaleFactor); -} - -// ----------------------------------------------------------------------- - -void TopLevelWidget::PrivateData::display() -{ - if (! selfw->pData->visible) - return; - - const Size size(window.getSize()); - const uint width = size.getWidth(); - const uint height = size.getHeight(); - - const double autoScaleFactor = window.pData->autoScaleFactor; - - // TODO - - // main widget drawing - self->onDisplay(); - - // now draw subwidgets if there are any - selfw->pData->displaySubWidgets(width, height, autoScaleFactor); -} - -// ----------------------------------------------------------------------- - -void Window::PrivateData::renderToPicture(const char*, const GraphicsContext&, uint, uint) -{ - notImplemented("Window::PrivateData::renderToPicture"); -} - -// ----------------------------------------------------------------------- - -const GraphicsContext& Window::PrivateData::getGraphicsContext() const noexcept -{ - return (const GraphicsContext&)graphicsContext; -} - -// ----------------------------------------------------------------------- - -END_NAMESPACE_DGL - -// ----------------------------------------------------------------------- diff --git a/dpf/dgl/src/WebViewWin32.cpp b/dpf/dgl/src/WebViewWin32.cpp deleted file mode 100644 index 9b3f380..0000000 --- a/dpf/dgl/src/WebViewWin32.cpp +++ /dev/null @@ -1,23 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2025 Filipe Coelho - * - * Permission to use, copy, modify, and/or distribute this software for any purpose with - * or without fee is hereby granted, provided that the above copyright notice and this - * permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -// Include CHOC separately because it requires C++17 - -#define DISTRHO_WEB_VIEW_INCLUDE_IMPLEMENTATION -#define WEB_VIEW_NAMESPACE DGL_NAMESPACE -#define WEB_VIEW_DGL_NAMESPACE -#include "../WebView.hpp" -#include "../../distrho/extra/WebViewWin32.hpp" diff --git a/dpf/dgl/src/pugl-upstream/subprojects/sphinxygen.wrap b/dpf/dgl/src/pugl-upstream/subprojects/sphinxygen.wrap deleted file mode 100644 index 013de9c..0000000 --- a/dpf/dgl/src/pugl-upstream/subprojects/sphinxygen.wrap +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright 2022 David Robillard -# SPDX-License-Identifier: 0BSD OR ISC - -[wrap-file] -directory = sphinxygen-1.0.0 -source_url = https://download.drobilla.net/sphinxygen-1.0.0.tar.gz -source_filename = sphinxygen-1.0.0.tar.gz -source_hash = 96b19e3b37d4886dcf3e89d4ccf0b66c0deb9f2e34ac151a7a6659a421f0282d - -# [wrap-git] -# url = https://gitlab.com/drobilla/sphinxygen.git -# push-url = ssh://git@gitlab.com:drobilla/sphinxygen.git -# revision = main -# depth = 1 diff --git a/dpf/distrho/DistrhoUIMain.cpp b/dpf/distrho/DistrhoUIMain.cpp index 216e019..194e984 100644 --- a/dpf/distrho/DistrhoUIMain.cpp +++ b/dpf/distrho/DistrhoUIMain.cpp @@ -23,7 +23,11 @@ #if DISTRHO_PLUGIN_HAS_UI -#if defined(DISTRHO_PLUGIN_TARGET_AU) +#if defined(DISTRHO_PLUGIN_AND_UI_IN_SINGLE_OBJECT) +# if ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS +# warning Using single/monolithic LV2 target while DISTRHO_PLUGIN_WANT_DIRECT_ACCESS is 0 +# endif +#elif defined(DISTRHO_PLUGIN_TARGET_AU) # define DISTRHO_PLUGIN_AND_UI_IN_SINGLE_OBJECT 1 # import "src/DistrhoUIAU.mm" #elif defined(DISTRHO_PLUGIN_TARGET_CARLA) diff --git a/dpf/distrho/DistrhoUtils.hpp b/dpf/distrho/DistrhoUtils.hpp index 6b9b9af..77a9b95 100644 --- a/dpf/distrho/DistrhoUtils.hpp +++ b/dpf/distrho/DistrhoUtils.hpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2024 Filipe Coelho + * Copyright (C) 2012-2025 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this @@ -23,6 +23,13 @@ # define __STDC_LIMIT_MACROS #endif +#ifdef __WINE__ +# ifndef NOMINMAX +# define NOMINMAX +# endif +# include +#endif + #include #include #include diff --git a/dpf/distrho/extra/Base64.hpp b/dpf/distrho/extra/Base64.hpp deleted file mode 100644 index 6833f16..0000000 --- a/dpf/distrho/extra/Base64.hpp +++ /dev/null @@ -1,149 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2024 Filipe Coelho - * - * Permission to use, copy, modify, and/or distribute this software for any purpose with - * or without fee is hereby granted, provided that the above copyright notice and this - * permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#ifndef DISTRHO_BASE64_HPP_INCLUDED -#define DISTRHO_BASE64_HPP_INCLUDED - -#include "../DistrhoUtils.hpp" - -#include - -// -------------------------------------------------------------------------------------------------------------------- -// base64 stuff, based on http://www.adp-gmbh.ch/cpp/common/base64.html - -/* - Copyright (C) 2004-2008 René Nyffenegger - - This source code is provided 'as-is', without any express or implied - warranty. In no event will the author be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this source code must not be misrepresented; you must not - claim that you wrote the original source code. If you use this source code - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original source code. - - 3. This notice may not be removed or altered from any source distribution. - - René Nyffenegger rene.nyffenegger@adp-gmbh.ch -*/ - -// -------------------------------------------------------------------------------------------------------------------- -// Helpers - -#ifndef DOXYGEN -namespace DistrhoBase64Helpers { - -static constexpr const char* const kBase64Chars = - "ABCDEFGHIJKLMNOPQRSTUVWXYZ" - "abcdefghijklmnopqrstuvwxyz" - "0123456789+/"; - -static inline -uint8_t findBase64CharIndex(const char c) -{ - static const uint8_t kBase64CharsLen = static_cast(std::strlen(kBase64Chars)); - - for (uint8_t i=0; i= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9') || c == '+' || c == '/'; -} - -} // namespace DistrhoBase64Helpers -#endif - -// -------------------------------------------------------------------------------------------------------------------- - -static inline -std::vector d_getChunkFromBase64String(const char* const base64string) -{ - DISTRHO_SAFE_ASSERT_RETURN(base64string != nullptr, std::vector()); - - uint i=0, j=0; - uint charArray3[3], charArray4[4]; - - std::vector ret; - ret.reserve(std::strlen(base64string)*3/4 + 4); - - for (std::size_t l=0, len=std::strlen(base64string); l(c); - - if (i == 4) - { - for (i=0; i<4; ++i) - charArray4[i] = DistrhoBase64Helpers::findBase64CharIndex(static_cast(charArray4[i])); - - charArray3[0] = (charArray4[0] << 2) + ((charArray4[1] & 0x30) >> 4); - charArray3[1] = ((charArray4[1] & 0xf) << 4) + ((charArray4[2] & 0x3c) >> 2); - charArray3[2] = ((charArray4[2] & 0x3) << 6) + charArray4[3]; - - for (i=0; i<3; ++i) - ret.push_back(static_cast(charArray3[i])); - - i = 0; - } - } - - if (i != 0) - { - for (j=0; j(charArray4[j])); - - for (j=i; j<4; ++j) - charArray4[j] = 0; - - charArray3[0] = (charArray4[0] << 2) + ((charArray4[1] & 0x30) >> 4); - charArray3[1] = ((charArray4[1] & 0xf) << 4) + ((charArray4[2] & 0x3c) >> 2); - charArray3[2] = ((charArray4[2] & 0x3) << 6) + charArray4[3]; - - for (j=0; i>0 && j(charArray3[j])); - } - - return ret; -} - -// -------------------------------------------------------------------------------------------------------------------- - -#endif // DISTRHO_BASE64_HPP_INCLUDED diff --git a/dpf/distrho/extra/ChildProcess.hpp b/dpf/distrho/extra/ChildProcess.hpp deleted file mode 100644 index 7f59987..0000000 --- a/dpf/distrho/extra/ChildProcess.hpp +++ /dev/null @@ -1,294 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2024 Filipe Coelho - * - * Permission to use, copy, modify, and/or distribute this software for any purpose with - * or without fee is hereby granted, provided that the above copyright notice and this - * permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#pragma once - -#include "Sleep.hpp" -#include "Time.hpp" - -#ifdef DISTRHO_OS_WINDOWS -# include -# include -# include -#else -# include -# include -# include -# include -#endif - -START_NAMESPACE_DISTRHO - -// ----------------------------------------------------------------------------------------------------------- - -class ChildProcess -{ - #ifdef _WIN32 - PROCESS_INFORMATION pinfo; - #else - pid_t pid; - #endif - -public: - ChildProcess() - #ifdef _WIN32 - : pinfo(CPP_AGGREGATE_INIT(PROCESS_INFORMATION){ INVALID_HANDLE_VALUE, INVALID_HANDLE_VALUE, 0, 0 }) - #else - : pid(-1) - #endif - { - } - - ~ChildProcess() - { - stop(); - } - - #ifdef _WIN32 - bool start(const char* const args[], const WCHAR* const envp) - #else - bool start(const char* const args[], char* const* const envp = nullptr) - #endif - { - #ifdef _WIN32 - std::string cmd; - - for (uint i = 0; args[i] != nullptr; ++i) - { - if (i != 0) - cmd += " "; - - if (args[i][0] != '"' && std::strchr(args[i], ' ') != nullptr) - { - cmd += "\""; - cmd += args[i]; - cmd += "\""; - } - else - { - cmd += args[i]; - } - } - - wchar_t wcmd[PATH_MAX]; - if (MultiByteToWideChar(CP_UTF8, 0, cmd.data(), -1, wcmd, PATH_MAX) <= 0) - return false; - - STARTUPINFOW si = {}; - si.cb = sizeof(si); - - d_stdout("will start process with args '%s'", cmd.data()); - - return CreateProcessW(nullptr, // lpApplicationName - wcmd, // lpCommandLine - nullptr, // lpProcessAttributes - nullptr, // lpThreadAttributes - TRUE, // bInheritHandles - CREATE_NO_WINDOW | CREATE_UNICODE_ENVIRONMENT, // dwCreationFlags - const_cast(envp), // lpEnvironment - nullptr, // lpCurrentDirectory - &si, // lpStartupInfo - &pinfo) != FALSE; - #else - const pid_t ret = pid = vfork(); - - switch (ret) - { - // child process - case 0: - if (envp != nullptr) - execve(args[0], const_cast(args), envp); - else - execvp(args[0], const_cast(args)); - - d_stderr2("exec failed: %d:%s", errno, std::strerror(errno)); - _exit(1); - break; - - // error - case -1: - d_stderr2("vfork() failed: %d:%s", errno, std::strerror(errno)); - break; - } - - return ret > 0; - #endif - } - - void stop(const uint32_t timeoutInMilliseconds = 2000) - { - const uint32_t timeout = d_gettime_ms() + timeoutInMilliseconds; - bool sendTerminate = true; - - #ifdef _WIN32 - if (pinfo.hProcess == INVALID_HANDLE_VALUE) - return; - - const PROCESS_INFORMATION opinfo = pinfo; - pinfo = (PROCESS_INFORMATION){ INVALID_HANDLE_VALUE, INVALID_HANDLE_VALUE, 0, 0 }; - - for (DWORD exitCode;;) - { - if (GetExitCodeProcess(opinfo.hProcess, &exitCode) == FALSE || - exitCode != STILL_ACTIVE || - WaitForSingleObject(opinfo.hProcess, 0) != WAIT_TIMEOUT) - { - CloseHandle(opinfo.hThread); - CloseHandle(opinfo.hProcess); - return; - } - - if (sendTerminate) - { - sendTerminate = false; - TerminateProcess(opinfo.hProcess, ERROR_BROKEN_PIPE); - } - - if (d_gettime_ms() < timeout) - { - d_msleep(5); - continue; - } - d_stderr("ChildProcess::stop() - timed out"); - TerminateProcess(opinfo.hProcess, 9); - d_msleep(5); - CloseHandle(opinfo.hThread); - CloseHandle(opinfo.hProcess); - break; - } - #else - if (pid <= 0) - return; - - const pid_t opid = pid; - pid = -1; - - for (pid_t ret;;) - { - try { - ret = ::waitpid(opid, nullptr, WNOHANG); - } DISTRHO_SAFE_EXCEPTION_BREAK("waitpid"); - - switch (ret) - { - case -1: - if (errno == ECHILD) - { - // success, child doesn't exist - return; - } - else - { - d_stderr("ChildProcess::stop() - waitpid failed: %d:%s", errno, std::strerror(errno)); - return; - } - break; - - case 0: - if (sendTerminate) - { - sendTerminate = false; - kill(opid, SIGTERM); - } - if (d_gettime_ms() < timeout) - { - d_msleep(5); - continue; - } - - d_stderr("ChildProcess::stop() - timed out"); - kill(opid, SIGKILL); - waitpid(opid, nullptr, WNOHANG); - break; - - default: - if (ret == opid) - { - // success - return; - } - else - { - d_stderr("ChildProcess::stop() - got wrong pid %i (requested was %i)", int(ret), int(opid)); - return; - } - } - - break; - } - #endif - } - - bool isRunning() - { - #ifdef _WIN32 - if (pinfo.hProcess == INVALID_HANDLE_VALUE) - return false; - - DWORD exitCode; - if (GetExitCodeProcess(pinfo.hProcess, &exitCode) == FALSE || - exitCode != STILL_ACTIVE || - WaitForSingleObject(pinfo.hProcess, 0) != WAIT_TIMEOUT) - { - const PROCESS_INFORMATION opinfo = pinfo; - pinfo = (PROCESS_INFORMATION){ INVALID_HANDLE_VALUE, INVALID_HANDLE_VALUE, 0, 0 }; - CloseHandle(opinfo.hThread); - CloseHandle(opinfo.hProcess); - return false; - } - - return true; - #else - if (pid <= 0) - return false; - - const pid_t ret = ::waitpid(pid, nullptr, WNOHANG); - - if (ret == pid || (ret == -1 && errno == ECHILD)) - { - pid = 0; - return false; - } - - return true; - #endif - } - - #ifndef _WIN32 - void signal(const int sig) - { - if (pid > 0) - kill(pid, sig); - } - #endif - - void terminate() - { - #ifdef _WIN32 - if (pinfo.hProcess != INVALID_HANDLE_VALUE) - TerminateProcess(pinfo.hProcess, 15); - #else - if (pid > 0) - kill(pid, SIGTERM); - #endif - } - - DISTRHO_DECLARE_NON_COPYABLE(ChildProcess) -}; - -// ----------------------------------------------------------------------------------------------------------- - -END_NAMESPACE_DISTRHO diff --git a/dpf/distrho/extra/ExternalWindow.hpp b/dpf/distrho/extra/ExternalWindow.hpp deleted file mode 100644 index 65ca1cf..0000000 --- a/dpf/distrho/extra/ExternalWindow.hpp +++ /dev/null @@ -1,578 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2024 Filipe Coelho - * - * Permission to use, copy, modify, and/or distribute this software for any purpose with - * or without fee is hereby granted, provided that the above copyright notice and this - * permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#ifndef DISTRHO_EXTERNAL_WINDOW_HPP_INCLUDED -#define DISTRHO_EXTERNAL_WINDOW_HPP_INCLUDED - -#include "String.hpp" - -#ifndef DISTRHO_OS_WINDOWS -# include -# include -# include -# include -#endif - -START_NAMESPACE_DISTRHO - -// ----------------------------------------------------------------------- -// ExternalWindow class - -/** - External Window class. - - This is a standalone TopLevelWidget/Window-compatible class, but without any real event handling. - Being compatible with TopLevelWidget/Window, it allows to be used as DPF UI target. - - It can be used to embed non-DPF things or to run a tool in a new process as the "UI". - The uiIdle() function will be called at regular intervals to keep UI running. - There are helper methods in place to launch external tools and keep track of its running state. - - External windows can be setup to run in 3 different modes: - * Embed: - Embed into the host UI, even-loop driven by the host. - This is basically working as a regular plugin UI, as you typically expect them to. - The plugin side does not get control over showing, hiding or closing the window (as usual for plugins). - No restrictions on supported plugin format, everything should work. - Requires DISTRHO_PLUGIN_HAS_EMBED_UI to be set to 1. - - * Semi-external: - The UI is not embed into the host, but the even-loop is still driven by it. - In this mode the host does not have control over the UI except for showing, hiding and setting transient parent. - It is possible to close the window from the plugin, the host will be notified of such case. - Host regularly calls isQuitting() to check if the UI got closed by the user or plugin side. - This mode is only possible in LV2 plugin formats, using lv2ui:showInterface extension. - - * Standalone: - The UI is not embed into the host or uses its event-loop, basically running as standalone. - The host only has control over showing and hiding the window, nothing else. - The UI is still free to close itself at any point. - DPF will keep calling isRunning() to check if it should keep the event-loop running. - Only possible in JACK and DSSI targets, as the UIs are literally standalone applications there. - - Please note that for non-embed windows, you cannot show the window yourself. - The plugin window is only allowed to hide or close itself, a "show" action needs to come from the host. - - A few callbacks are provided so that implementations do not need to care about checking for state changes. - They are not called on construction, but will be everytime something changes either by the host or the window itself. - */ -class ExternalWindow -{ - struct PrivateData; - -public: - /** - Constructor. - */ - explicit ExternalWindow() - : pData() {} - - /** - Constructor for DPF internal use. - */ - explicit ExternalWindow(const PrivateData& data) - : pData(data) {} - - /** - Destructor. - */ - virtual ~ExternalWindow() - { - DISTRHO_SAFE_ASSERT(!pData.visible); - } - - /* -------------------------------------------------------------------------------------------------------- - * ExternalWindow specific calls - Host side calls that you can reimplement for fine-grained funtionality */ - - /** - Check if main-loop is running. - This is used under standalone mode to check whether to keep things running. - Returning false from this function will stop the event-loop and close the window. - */ - virtual bool isRunning() const - { -#ifndef DISTRHO_OS_WINDOWS - if (ext.inUse) - return ext.isRunning(); -#endif - return isVisible(); - } - - /** - Check if we are about to close. - This is used when the event-loop is provided by the host to check if it should close the window. - It is also used in standalone mode right after isRunning() returns false to verify if window needs to be closed. - */ - virtual bool isQuitting() const - { -#ifndef DISTRHO_OS_WINDOWS - return ext.inUse ? ext.isQuitting : pData.isQuitting; -#else - return pData.isQuitting; -#endif - } - - /** - Get the "native" window handle. - This can be reimplemented in order to pass the native window to hosts that can use such informaton. - - Returned value type depends on the platform: - - HaikuOS: This is a pointer to a `BView`. - - MacOS: This is a pointer to an `NSView*`. - - Windows: This is a `HWND`. - - Everything else: This is an [X11] `Window`. - - @note Only available to override if DISTRHO_PLUGIN_HAS_EMBED_UI is set to 1. - */ - virtual uintptr_t getNativeWindowHandle() const noexcept - { - return 0; - } - - /** - Grab the keyboard input focus. - Typically you would setup OS-native methods to bring the window to front and give it focus. - Default implementation does nothing. - */ - virtual void focus() {} - - /* -------------------------------------------------------------------------------------------------------- - * TopLevelWidget-like calls - Information, can be called by either host or plugin */ - -#if DISTRHO_PLUGIN_HAS_EMBED_UI - /** - Whether this Window is embed into another (usually not DGL-controlled) Window. - */ - bool isEmbed() const noexcept - { - return pData.parentWindowHandle != 0; - } -#endif - - /** - Check if this window is visible. - @see setVisible(bool) - */ - bool isVisible() const noexcept - { - return pData.visible; - } - - /** - Whether this Window is running as standalone, that is, without being coupled to a host event-loop. - When in standalone mode, isRunning() is called to check if the event-loop should keep running. - */ - bool isStandalone() const noexcept - { - return pData.isStandalone; - } - - /** - Get width of this window. - Only relevant to hosts when the UI is embedded. - */ - uint getWidth() const noexcept - { - return pData.width; - } - - /** - Get height of this window. - Only relevant to hosts when the UI is embedded. - */ - uint getHeight() const noexcept - { - return pData.height; - } - - /** - Get the scale factor requested for this window. - This is purely informational, and up to developers to choose what to do with it. - */ - double getScaleFactor() const noexcept - { - return pData.scaleFactor; - } - - /** - Get the title of the window previously set with setTitle(). - This is typically displayed in the title bar or in window switchers. - */ - const char* getTitle() const noexcept - { - return pData.title; - } - -#if DISTRHO_PLUGIN_HAS_EMBED_UI - /** - Get the "native" window handle that this window should embed itself into. - Returned value type depends on the platform: - - HaikuOS: This is a pointer to a `BView`. - - MacOS: This is a pointer to an `NSView*`. - - Windows: This is a `HWND`. - - Everything else: This is an [X11] `Window`. - */ - uintptr_t getParentWindowHandle() const noexcept - { - return pData.parentWindowHandle; - } -#endif - - /** - Get the transient window that we should attach ourselves to. - TODO what id? also NSView* on macOS, or NSWindow? - */ - uintptr_t getTransientWindowId() const noexcept - { - return pData.transientWinId; - } - - /* -------------------------------------------------------------------------------------------------------- - * TopLevelWidget-like calls - actions called by either host or plugin */ - - /** - Hide window. - This is the same as calling setVisible(false). - Embed windows should never call this! - @see isVisible(), setVisible(bool) - */ - void hide() - { - setVisible(false); - } - - /** - Hide the UI and gracefully terminate. - Embed windows should never call this! - */ - virtual void close() - { - pData.isQuitting = true; - hide(); -#ifndef DISTRHO_OS_WINDOWS - if (ext.inUse) - terminateAndWaitForExternalProcess(); -#endif - } - - /** - Set width of this window. - Can trigger a sizeChanged callback. - Only relevant to hosts when the UI is embedded. - */ - void setWidth(uint width) - { - setSize(width, getHeight()); - } - - /** - Set height of this window. - Can trigger a sizeChanged callback. - Only relevant to hosts when the UI is embedded. - */ - void setHeight(uint height) - { - setSize(getWidth(), height); - } - - /** - Set size of this window using @a width and @a height values. - Can trigger a sizeChanged callback. - Only relevant to hosts when the UI is embedded. - */ - void setSize(uint width, uint height) - { - DISTRHO_SAFE_ASSERT_UINT_RETURN(width > 1, width,); - DISTRHO_SAFE_ASSERT_UINT_RETURN(height > 1, height,); - - if (pData.width == width && pData.height == height) - return; - - pData.width = width; - pData.height = height; - sizeChanged(width, height); - } - - /** - Set the title of the window, typically displayed in the title bar or in window switchers. - Can trigger a titleChanged callback. - Only relevant to hosts when the UI is not embedded. - */ - void setTitle(const char* title) - { - if (pData.title == title) - return; - - pData.title = title; - titleChanged(title); - } - - /** - Set geometry constraints for the Window when resized by the user. - */ - void setGeometryConstraints(uint minimumWidth, uint minimumHeight, bool keepAspectRatio = false) - { - DISTRHO_SAFE_ASSERT_UINT_RETURN(minimumWidth > 0, minimumWidth,); - DISTRHO_SAFE_ASSERT_UINT_RETURN(minimumHeight > 0, minimumHeight,); - - pData.minWidth = minimumWidth; - pData.minHeight = minimumHeight; - pData.keepAspectRatio = keepAspectRatio; - } - - /* -------------------------------------------------------------------------------------------------------- - * TopLevelWidget-like calls - actions called by the host */ - - /** - Show window. - This is the same as calling setVisible(true). - @see isVisible(), setVisible(bool) - */ - void show() - { - setVisible(true); - } - - /** - Set window visible (or not) according to @a visible. - @see isVisible(), hide(), show() - */ - void setVisible(bool visible) - { - if (pData.visible == visible) - return; - - pData.visible = visible; - visibilityChanged(visible); - } - - /** - Called by the host to set the transient parent window that we should attach ourselves to. - TODO what id? also NSView* on macOS, or NSWindow? - */ - void setTransientWindowId(uintptr_t winId) - { - if (pData.transientWinId == winId) - return; - - pData.transientWinId = winId; - transientParentWindowChanged(winId); - } - -protected: - /* -------------------------------------------------------------------------------------------------------- - * ExternalWindow special calls for running externals tools */ - - bool startExternalProcess(const char* args[]) - { -#ifndef DISTRHO_OS_WINDOWS - ext.inUse = true; - - return ext.start(args); -#else - (void)args; - return false; // TODO -#endif - } - - void terminateAndWaitForExternalProcess() - { -#ifndef DISTRHO_OS_WINDOWS - ext.isQuitting = true; - ext.terminateAndWait(); -#else - // TODO -#endif - } - - /* -------------------------------------------------------------------------------------------------------- - * ExternalWindow specific callbacks */ - - /** - A callback for when the window size changes. - @note WIP this might need to get fed back into the host somehow. - */ - virtual void sizeChanged(uint /* width */, uint /* height */) - { - // unused, meant for custom implementations - } - - /** - A callback for when the window title changes. - @note WIP this might need to get fed back into the host somehow. - */ - virtual void titleChanged(const char* /* title */) - { - // unused, meant for custom implementations - } - - /** - A callback for when the window visibility changes. - @note WIP this might need to get fed back into the host somehow. - */ - virtual void visibilityChanged(bool /* visible */) - { - // unused, meant for custom implementations - } - - /** - A callback for when the transient parent window changes. - */ - virtual void transientParentWindowChanged(uintptr_t /* winId */) - { - // unused, meant for custom implementations - } - -private: - friend class PluginWindow; - friend class UI; - -#ifndef DISTRHO_OS_WINDOWS - struct ExternalProcess { - bool inUse; - bool isQuitting; - mutable pid_t pid; - - ExternalProcess() - : inUse(false), - isQuitting(false), - pid(0) {} - - bool isRunning() const noexcept - { - if (pid <= 0) - return false; - - const pid_t p = ::waitpid(pid, nullptr, WNOHANG); - - if (p == pid || (p == -1 && errno == ECHILD)) - { - d_stdout("NOTICE: Child process exited while idle"); - pid = 0; - return false; - } - - return true; - } - - bool start(const char* args[]) - { - terminateAndWait(); - - pid = vfork(); - - switch (pid) - { - case 0: - execvp(args[0], (char**)args); - _exit(1); - return false; - - case -1: - d_stderr("Could not start external ui"); - return false; - - default: - return true; - } - } - - void terminateAndWait() - { - if (pid <= 0) - return; - - d_stdout("Waiting for external process to stop,,,"); - - bool sendTerm = true; - - for (pid_t p;;) - { - p = ::waitpid(pid, nullptr, WNOHANG); - - switch (p) - { - case 0: - if (sendTerm) - { - sendTerm = false; - ::kill(pid, SIGTERM); - } - break; - - case -1: - if (errno == ECHILD) - { - d_stdout("Done! (no such process)"); - pid = 0; - return; - } - break; - - default: - if (p == pid) - { - d_stdout("Done! (clean wait)"); - pid = 0; - return; - } - break; - } - - // 5 msec - usleep(5*1000); - } - } - } ext; -#endif - - struct PrivateData { - uintptr_t parentWindowHandle; - uintptr_t transientWinId; - uint width; - uint height; - double scaleFactor; - String title; - uint minWidth; - uint minHeight; - bool keepAspectRatio; - bool isQuitting; - bool isStandalone; - bool visible; - - PrivateData() - : parentWindowHandle(0), - transientWinId(0), - width(1), - height(1), - scaleFactor(1.0), - title(), - minWidth(0), - minHeight(0), - keepAspectRatio(false), - isQuitting(false), - isStandalone(false), - visible(false) {} - } pData; - - DISTRHO_DECLARE_NON_COPYABLE(ExternalWindow) -}; - -// ----------------------------------------------------------------------- - -END_NAMESPACE_DISTRHO - -#endif // DISTRHO_EXTERNAL_WINDOW_HPP_INCLUDED diff --git a/dpf/distrho/extra/FileBrowserDialog.hpp b/dpf/distrho/extra/FileBrowserDialog.hpp deleted file mode 100644 index 786f280..0000000 --- a/dpf/distrho/extra/FileBrowserDialog.hpp +++ /dev/null @@ -1,28 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2022 Filipe Coelho - * - * Permission to use, copy, modify, and/or distribute this software for any purpose with - * or without fee is hereby granted, provided that the above copyright notice and this - * permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#ifndef DISTRHO_FILE_BROWSER_DIALOG_HPP_INCLUDED -#define DISTRHO_FILE_BROWSER_DIALOG_HPP_INCLUDED - -#include "../DistrhoUtils.hpp" - -START_NAMESPACE_DISTRHO - -#include "FileBrowserDialogImpl.hpp" - -END_NAMESPACE_DISTRHO - -#endif // DISTRHO_FILE_BROWSER_DIALOG_HPP_INCLUDED diff --git a/dpf/distrho/extra/FileBrowserDialogImpl.cpp b/dpf/distrho/extra/FileBrowserDialogImpl.cpp deleted file mode 100644 index bb431ab..0000000 --- a/dpf/distrho/extra/FileBrowserDialogImpl.cpp +++ /dev/null @@ -1,894 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2024 Filipe Coelho - * - * Permission to use, copy, modify, and/or distribute this software for any purpose with - * or without fee is hereby granted, provided that the above copyright notice and this - * permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#if !defined(DISTRHO_FILE_BROWSER_DIALOG_HPP_INCLUDED) && !defined(DGL_FILE_BROWSER_DIALOG_HPP_INCLUDED) -# error bad include -#endif -#if !defined(FILE_BROWSER_DIALOG_DISTRHO_NAMESPACE) && !defined(FILE_BROWSER_DIALOG_DGL_NAMESPACE) -# error bad usage -#endif - -#include "ScopedPointer.hpp" -#include "String.hpp" - -#ifdef DISTRHO_OS_MAC -# import -#endif - -#ifdef DISTRHO_OS_WASM -# include -# include -#endif - -#ifdef DISTRHO_OS_WINDOWS -# include -# include -# include -# include -# include -# include -#else -# include -#endif - -#ifdef HAVE_DBUS -# include -#endif - -#ifdef HAVE_X11 -# define DBLCLKTME 400 -# include "sofd/libsofd.h" -# if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wcast-qual" -# pragma GCC diagnostic ignored "-Wconversion" -# pragma GCC diagnostic ignored "-Wfloat-conversion" -# pragma GCC diagnostic ignored "-Wshadow" -# pragma GCC diagnostic ignored "-Wsign-conversion" -# pragma GCC diagnostic ignored "-Wstrict-overflow" -# endif -# include "sofd/libsofd.c" -# if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) -# pragma GCC diagnostic pop -# endif -# undef HAVE_MNTENT -# undef MAX -# undef MIN -#endif - -#ifdef FILE_BROWSER_DIALOG_DGL_NAMESPACE -START_NAMESPACE_DGL -using DISTRHO_NAMESPACE::ScopedPointer; -using DISTRHO_NAMESPACE::String; -#else -START_NAMESPACE_DISTRHO -#endif - -// -------------------------------------------------------------------------------------------------------------------- - -// static pointer used for signal null/none action taken -static const char* const kSelectedFileCancelled = "__dpf_cancelled__"; - -#ifdef HAVE_DBUS -static constexpr bool isHexChar(const char c) noexcept -{ - return c >= '0' && c <= 'f' && (c <= '9' || (c >= 'A' && c <= 'F') || c >= 'a'); -} - -static constexpr int toHexChar(const char c) noexcept -{ - return c >= '0' && c <= '9' ? c - '0' : (c >= 'A' && c <= 'F' ? c - 'A' : c - 'a') + 10; -} -#endif - -// -------------------------------------------------------------------------------------------------------------------- - -#ifdef DISTRHO_OS_WASM -# define DISTRHO_WASM_NAMESPACE_MACRO_HELPER(NS, SEP, FUNCTION) NS ## SEP ## FUNCTION -# define DISTRHO_WASM_NAMESPACE_MACRO(NS, FUNCTION) DISTRHO_WASM_NAMESPACE_MACRO_HELPER(NS, _, FUNCTION) -# define DISTRHO_WASM_NAMESPACE_HELPER(NS) #NS -# define DISTRHO_WASM_NAMESPACE(NS) DISTRHO_WASM_NAMESPACE_HELPER(NS) -# define fileBrowserSetPathNamespaced DISTRHO_WASM_NAMESPACE_MACRO(FILE_BROWSER_DIALOG_NAMESPACE, fileBrowserSetPath) -# define fileBrowserSetPathFuncName DISTRHO_WASM_NAMESPACE(FILE_BROWSER_DIALOG_NAMESPACE) "_fileBrowserSetPath" - -// FIXME use world class name as prefix -static bool openWebBrowserFileDialog(const char* const funcname, void* const handle) -{ - const char* const nameprefix = DISTRHO_WASM_NAMESPACE(FILE_BROWSER_DIALOG_NAMESPACE); - - return EM_ASM_INT({ - var canvasFileObjName = UTF8ToString($0) + "_file_open"; - var canvasFileOpenElem = document.getElementById(canvasFileObjName); - - var jsfuncname = UTF8ToString($1); - var jsfunc = Module.cwrap(jsfuncname, 'null', ['number', 'string']); - - if (canvasFileOpenElem) { - document.body.removeChild(canvasFileOpenElem); - } - - canvasFileOpenElem = document.createElement('input'); - canvasFileOpenElem.type = 'file'; - canvasFileOpenElem.id = canvasFileObjName; - canvasFileOpenElem.style.display = 'none'; - document.body.appendChild(canvasFileOpenElem); - - canvasFileOpenElem.onchange = function(e) { - if (!canvasFileOpenElem.files) { - jsfunc($2, ""); - return; - } - - // store uploaded files inside a specific dir - try { - Module.FS.mkdir('/userfiles'); - } catch (e) {} - - var file = canvasFileOpenElem.files[0]; - var filename = '/userfiles/' + file.name; - var reader = new FileReader(); - - reader.onloadend = function(e) { - var content = new Uint8Array(reader.result); - Module.FS.writeFile(filename, content); - jsfunc($2, filename); - }; - - reader.readAsArrayBuffer(file); - }; - - canvasFileOpenElem.click(); - return 1; - }, nameprefix, funcname, handle) != 0; -} - -static bool downloadWebBrowserFile(const char* const filename) -{ - const char* const nameprefix = DISTRHO_WASM_NAMESPACE(FILE_BROWSER_DIALOG_NAMESPACE); - - return EM_ASM_INT({ - var canvasFileObjName = UTF8ToString($0) + "_file_save"; - var jsfilename = UTF8ToString($1); - - var canvasFileSaveElem = document.getElementById(canvasFileObjName); - if (canvasFileSaveElem) { - // only 1 file save allowed at once - console.warn("One file save operation already in progress, refusing to open another"); - return 0; - } - - canvasFileSaveElem = document.createElement('a'); - canvasFileSaveElem.download = jsfilename; - canvasFileSaveElem.id = canvasFileObjName; - canvasFileSaveElem.style.display = 'none'; - document.body.appendChild(canvasFileSaveElem); - - var content = Module.FS.readFile('/userfiles/' + jsfilename); - canvasFileSaveElem.href = URL.createObjectURL(new Blob([content])); - canvasFileSaveElem.click(); - - setTimeout(function() { - URL.revokeObjectURL(canvasFileSaveElem.href); - document.body.removeChild(canvasFileSaveElem); - }, 2000); - return 1; - }, nameprefix, filename) != 0; -} -#endif - -// -------------------------------------------------------------------------------------------------------------------- - -struct FileBrowserData { - const char* selectedFile; - -#ifdef DISTRHO_OS_MAC - NSSavePanel* nsBasePanel; - NSOpenPanel* nsOpenPanel; -#endif -#ifdef HAVE_DBUS - DBusConnection* dbuscon; -#endif -#ifdef HAVE_X11 - Display* x11display; -#endif - -#ifdef DISTRHO_OS_WASM - char* defaultName; - bool saving; -#endif - -#ifdef DISTRHO_OS_WINDOWS - OPENFILENAMEW ofn; - volatile bool threadCancelled; - uintptr_t threadHandle; - std::vector fileNameW; - std::vector startDirW; - std::vector titleW; - const bool saving; - bool isEmbed; - - FileBrowserData(const bool save) - : selectedFile(nullptr), - threadCancelled(false), - threadHandle(0), - fileNameW(32768), - saving(save), - isEmbed(false) - { - std::memset(&ofn, 0, sizeof(ofn)); - ofn.lStructSize = sizeof(ofn); - ofn.lpstrFile = fileNameW.data(); - ofn.nMaxFile = (DWORD)fileNameW.size(); - } - - ~FileBrowserData() - { - if (cancelAndStop()) - free(); - } - - void setupAndStart(const bool embed, - const char* const startDir, - const char* const windowTitle, - const uintptr_t winId, - const FileBrowserOptions options) - { - isEmbed = embed; - - ofn.hwndOwner = (HWND)winId; - - ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_NOCHANGEDIR; - if (options.buttons.showHidden == FileBrowserOptions::kButtonVisibleChecked) - ofn.Flags |= OFN_FORCESHOWHIDDEN; - - ofn.FlagsEx = 0x0; - if (options.buttons.showPlaces == FileBrowserOptions::kButtonInvisible) - ofn.FlagsEx |= OFN_EX_NOPLACESBAR; - - startDirW.resize(std::strlen(startDir) + 1); - if (MultiByteToWideChar(CP_UTF8, 0, startDir, -1, startDirW.data(), static_cast(startDirW.size()))) - ofn.lpstrInitialDir = startDirW.data(); - - titleW.resize(std::strlen(windowTitle) + 1); - if (MultiByteToWideChar(CP_UTF8, 0, windowTitle, -1, titleW.data(), static_cast(titleW.size()))) - ofn.lpstrTitle = titleW.data(); - - uint threadId; - threadCancelled = false; - threadHandle = _beginthreadex(nullptr, 0, _run, this, 0, &threadId); - } - - bool cancelAndStop() - { - threadCancelled = true; - - if (threadHandle == 0) - return true; - - // if previous dialog running, carefully close its window - const HWND owner = isEmbed ? GetParent(ofn.hwndOwner) : ofn.hwndOwner; - - if (owner != nullptr && owner != INVALID_HANDLE_VALUE) - { - const HWND window = GetWindow(owner, GW_HWNDFIRST); - - if (window != nullptr && window != INVALID_HANDLE_VALUE) - { - SendMessage(window, WM_SYSCOMMAND, SC_CLOSE, 0); - SendMessage(window, WM_CLOSE, 0, 0); - WaitForSingleObject((HANDLE)threadHandle, 5000); - } - } - - if (threadHandle == 0) - return true; - - // not good if thread still running, but let's close the handle anyway - CloseHandle((HANDLE)threadHandle); - threadHandle = 0; - return false; - } - - void run() - { - const char* nextFile = nullptr; - - if (saving ? GetSaveFileNameW(&ofn) : GetOpenFileNameW(&ofn)) - { - if (threadCancelled) - { - threadHandle = 0; - return; - } - - // back to UTF-8 - std::vector fileNameA(4 * 32768); - if (WideCharToMultiByte(CP_UTF8, 0, fileNameW.data(), -1, - fileNameA.data(), (int)fileNameA.size(), - nullptr, nullptr)) - { - nextFile = strdup(fileNameA.data()); - } - } - - if (threadCancelled) - { - threadHandle = 0; - return; - } - - if (nextFile == nullptr) - nextFile = kSelectedFileCancelled; - - selectedFile = nextFile; - threadHandle = 0; - } - - static unsigned __stdcall _run(void* const arg) - { - // CoInitializeEx(nullptr, COINIT_MULTITHREADED); - static_cast(arg)->run(); - // CoUninitialize(); - _endthreadex(0); - return 0; - } -#else // DISTRHO_OS_WINDOWS - FileBrowserData(const bool save) - : selectedFile(nullptr) - #ifdef DISTRHO_OS_MAC - , nsBasePanel(nullptr) - , nsOpenPanel(nullptr) - #endif - #ifdef HAVE_DBUS - , dbuscon(nullptr) - #endif - #ifdef HAVE_X11 - , x11display(nullptr) - #endif - { -#ifdef DISTRHO_OS_MAC - if (save) - { - nsOpenPanel = nullptr; - nsBasePanel = [[NSSavePanel savePanel]retain]; - } - else - { - nsOpenPanel = [[NSOpenPanel openPanel]retain]; - nsBasePanel = nsOpenPanel; - } -#endif -#ifdef DISTRHO_OS_WASM - defaultName = nullptr; - saving = save; -#endif -#ifdef HAVE_DBUS - if ((dbuscon = dbus_bus_get(DBUS_BUS_SESSION, nullptr)) != nullptr) - dbus_connection_set_exit_on_disconnect(dbuscon, false); -#endif -#ifdef HAVE_X11 - x11display = XOpenDisplay(nullptr); -#endif - - // maybe unused - return; (void)save; - } - - ~FileBrowserData() - { -#ifdef DISTRHO_OS_MAC - [nsBasePanel release]; -#endif -#ifdef DISTRHO_OS_WASM - std::free(defaultName); -#endif -#ifdef HAVE_DBUS - if (dbuscon != nullptr) - dbus_connection_unref(dbuscon); -#endif -#ifdef HAVE_X11 - if (x11display != nullptr) - XCloseDisplay(x11display); -#endif - - free(); - } -#endif - - void free() - { - if (selectedFile == nullptr) - return; - - if (selectedFile == kSelectedFileCancelled || std::strcmp(selectedFile, kSelectedFileCancelled) == 0) - { - selectedFile = nullptr; - return; - } - - std::free(const_cast(selectedFile)); - selectedFile = nullptr; - } - - DISTRHO_DECLARE_NON_COPYABLE(FileBrowserData) -}; - -// -------------------------------------------------------------------------------------------------------------------- - -#ifdef DISTRHO_OS_WASM -extern "C" { -EMSCRIPTEN_KEEPALIVE -void fileBrowserSetPathNamespaced(FileBrowserHandle handle, const char* filename) -{ - handle->free(); - - if (filename != nullptr && filename[0] != '\0') - handle->selectedFile = strdup(filename); - else - handle->selectedFile = kSelectedFileCancelled; -} -} -#endif - -FileBrowserHandle fileBrowserCreate(const bool isEmbed, - const uintptr_t windowId, - const double scaleFactor, - const FileBrowserOptions& options) -{ - String startDir(options.startDir); - - if (startDir.isEmpty()) - { -#ifdef DISTRHO_OS_WINDOWS - if (char* const cwd = _getcwd(nullptr, 0)) -#else - if (char* const cwd = getcwd(nullptr, 0)) -#endif - { - startDir = cwd; - std::free(cwd); - } - } - - DISTRHO_SAFE_ASSERT_RETURN(startDir.isNotEmpty(), nullptr); - - if (! startDir.endsWith(DISTRHO_OS_SEP)) - startDir += DISTRHO_OS_SEP_STR; - - String windowTitle(options.title); - - if (windowTitle.isEmpty()) - windowTitle = "FileBrowser"; - - ScopedPointer handle(new FileBrowserData(options.saving)); - -#ifdef DISTRHO_OS_MAC -# if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_8 - // unsupported - d_stderr2("fileBrowserCreate is unsupported on macos < 10.8"); - return nullptr; -# else - NSSavePanel* const nsBasePanel = handle->nsBasePanel; - DISTRHO_SAFE_ASSERT_RETURN(nsBasePanel != nullptr, nullptr); - - if (! options.saving) - { - NSOpenPanel* const nsOpenPanel = handle->nsOpenPanel; - DISTRHO_SAFE_ASSERT_RETURN(nsOpenPanel != nullptr, nullptr); - - [nsOpenPanel setAllowsMultipleSelection:NO]; - [nsOpenPanel setCanChooseDirectories:NO]; - [nsOpenPanel setCanChooseFiles:YES]; - } - - NSString* const startDirString = [[NSString alloc] - initWithBytes:startDir - length:strlen(startDir) - encoding:NSUTF8StringEncoding]; - [nsBasePanel setDirectoryURL:[NSURL fileURLWithPath:startDirString]]; - - // TODO file filter using allowedContentTypes: [UTType] - - if (options.buttons.listAllFiles == FileBrowserOptions::kButtonVisibleChecked) - [nsBasePanel setAllowsOtherFileTypes:YES]; - if (options.buttons.showHidden == FileBrowserOptions::kButtonVisibleChecked) - [nsBasePanel setShowsHiddenFiles:YES]; - - NSString* const titleString = [[NSString alloc] - initWithBytes:windowTitle - length:strlen(windowTitle) - encoding:NSUTF8StringEncoding]; - [nsBasePanel setTitle:titleString]; - - FileBrowserData* const handleptr = handle.get(); - - dispatch_async(dispatch_get_main_queue(), ^ - { - [nsBasePanel beginSheetModalForWindow:[(NSView*)windowId window] - completionHandler:^(NSModalResponse result) - { - if (result == NSModalResponseOK && [[nsBasePanel URL] isFileURL]) - { - NSString* const path = [[nsBasePanel URL] path]; - handleptr->selectedFile = strdup([path UTF8String]); - } - else - { - handleptr->selectedFile = kSelectedFileCancelled; - } - }]; - }); - - [startDirString release]; - [titleString release]; -# endif -#endif - -#ifdef DISTRHO_OS_WASM - if (options.saving) - { - const size_t len = options.defaultName != nullptr ? strlen(options.defaultName) : 0; - DISTRHO_SAFE_ASSERT_RETURN(len != 0, nullptr); - - // store uploaded files inside a specific dir - mkdir("/userfiles", 0777); - - char* const filename = static_cast(malloc(len + 12)); - std::strncpy(filename, "/userfiles/", 12); - std::memcpy(filename + 11, options.defaultName, len + 1); - - handle->defaultName = strdup(options.defaultName); - handle->selectedFile = filename; - return handle.release(); - } - - const char* const funcname = fileBrowserSetPathFuncName; - if (openWebBrowserFileDialog(funcname, handle.get())) - return handle.release(); - - return nullptr; -#endif - -#ifdef DISTRHO_OS_WINDOWS - handle->setupAndStart(isEmbed, startDir, windowTitle, windowId, options); -#endif - -#ifdef HAVE_DBUS - // optional, can be null - DBusConnection* const dbuscon = handle->dbuscon; - - // https://flatpak.github.io/xdg-desktop-portal/portal-docs.html#gdbus-org.freedesktop.portal.FileChooser - if (dbuscon != nullptr) - { - // if this is the first time we are calling into DBus, check if things are working - static bool checkAvailable = !dbus_bus_name_has_owner(dbuscon, "org.freedesktop.portal.Desktop", nullptr); - - if (checkAvailable) - { - checkAvailable = false; - - if (DBusMessage* const msg = dbus_message_new_method_call("org.freedesktop.portal.Desktop", - "/org/freedesktop/portal/desktop", - "org.freedesktop.portal.FileChooser", - "version")) - { - if (DBusMessage* const reply = dbus_connection_send_with_reply_and_block(dbuscon, msg, 250, nullptr)) - dbus_message_unref(reply); - - dbus_message_unref(msg); - } - } - - // Any subsquent calls should have this DBus service active - if (dbus_bus_name_has_owner(dbuscon, "org.freedesktop.portal.Desktop", nullptr)) - { - if (DBusMessage* const msg = dbus_message_new_method_call("org.freedesktop.portal.Desktop", - "/org/freedesktop/portal/desktop", - "org.freedesktop.portal.FileChooser", - options.saving ? "SaveFile" : "OpenFile")) - { - #ifdef HAVE_X11 - char windowIdStr[32]; - memset(windowIdStr, 0, sizeof(windowIdStr)); - snprintf(windowIdStr, sizeof(windowIdStr)-1, "x11:%llx", (ulonglong)windowId); - const char* windowIdStrPtr = windowIdStr; - #endif - - dbus_message_append_args(msg, - #ifdef HAVE_X11 - DBUS_TYPE_STRING, &windowIdStrPtr, - #endif - DBUS_TYPE_STRING, &windowTitle, - DBUS_TYPE_INVALID); - - DBusMessageIter iter, array; - dbus_message_iter_init_append(msg, &iter); - dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, "{sv}", &array); - - { - DBusMessageIter dict, variant, variantArray; - const char* const current_folder_key = "current_folder"; - const char* const current_folder_val = startDir.buffer(); - - dbus_message_iter_open_container(&array, DBUS_TYPE_DICT_ENTRY, nullptr, &dict); - dbus_message_iter_append_basic(&dict, DBUS_TYPE_STRING, ¤t_folder_key); - dbus_message_iter_open_container(&dict, DBUS_TYPE_VARIANT, "ay", &variant); - dbus_message_iter_open_container(&variant, DBUS_TYPE_ARRAY, "y", &variantArray); - dbus_message_iter_append_fixed_array(&variantArray, DBUS_TYPE_BYTE, - ¤t_folder_val, - static_cast(startDir.length() + 1)); - dbus_message_iter_close_container(&variant, &variantArray); - dbus_message_iter_close_container(&dict, &variant); - dbus_message_iter_close_container(&array, &dict); - } - - dbus_message_iter_close_container(&iter, &array); - - dbus_connection_send(dbuscon, msg, nullptr); - - dbus_message_unref(msg); - return handle.release(); - } - } - } -#endif - -#ifdef HAVE_X11 - Display* const x11display = handle->x11display; - DISTRHO_SAFE_ASSERT_RETURN(x11display != nullptr, nullptr); - - // unsupported at the moment - if (options.saving) - return nullptr; - - DISTRHO_SAFE_ASSERT_RETURN(x_fib_configure(0, startDir) == 0, nullptr); - DISTRHO_SAFE_ASSERT_RETURN(x_fib_configure(1, windowTitle) == 0, nullptr); - - const int button1 = options.buttons.showHidden == FileBrowserOptions::kButtonVisibleChecked ? 1 - : options.buttons.showHidden == FileBrowserOptions::kButtonVisibleUnchecked ? 0 : -1; - const int button2 = options.buttons.showPlaces == FileBrowserOptions::kButtonVisibleChecked ? 1 - : options.buttons.showPlaces == FileBrowserOptions::kButtonVisibleUnchecked ? 0 : -1; - const int button3 = options.buttons.listAllFiles == FileBrowserOptions::kButtonVisibleChecked ? 1 - : options.buttons.listAllFiles == FileBrowserOptions::kButtonVisibleUnchecked ? 0 : -1; - - x_fib_cfg_buttons(1, button1); - x_fib_cfg_buttons(2, button2); - x_fib_cfg_buttons(3, button3); - - if (x_fib_show(x11display, windowId, 0, 0, scaleFactor + 0.5) != 0) - return nullptr; -#endif - - return handle.release(); - - // might be unused - (void)isEmbed; - (void)windowId; - (void)scaleFactor; -} - -// -------------------------------------------------------------------------------------------------------------------- -// returns true if dialog was closed (with or without a file selection) - -bool fileBrowserIdle(const FileBrowserHandle handle) -{ -#ifdef HAVE_DBUS - if (DBusConnection* dbuscon = handle->dbuscon) - { - while (dbus_connection_dispatch(dbuscon) == DBUS_DISPATCH_DATA_REMAINS) {} - dbus_connection_read_write_dispatch(dbuscon, 0); - - if (DBusMessage* const msg = dbus_connection_pop_message(dbuscon)) - { - const char* const interface = dbus_message_get_interface(msg); - const char* const member = dbus_message_get_member(msg); - - if (interface != nullptr && std::strcmp(interface, "org.freedesktop.portal.Request") == 0 - && member != nullptr && std::strcmp(member, "Response") == 0) - { - do { - DBusMessageIter iter; - dbus_message_iter_init(msg, &iter); - - // starts with uint32 for return/exit code - DISTRHO_SAFE_ASSERT_BREAK(dbus_message_iter_get_arg_type(&iter) == DBUS_TYPE_UINT32); - - uint32_t ret = 1; - dbus_message_iter_get_basic(&iter, &ret); - - if (ret != 0) - break; - - // next must be array - dbus_message_iter_next(&iter); - DISTRHO_SAFE_ASSERT_BREAK(dbus_message_iter_get_arg_type(&iter) == DBUS_TYPE_ARRAY); - - // open dict array - DBusMessageIter dictArray; - dbus_message_iter_recurse(&iter, &dictArray); - DISTRHO_SAFE_ASSERT_BREAK(dbus_message_iter_get_arg_type(&dictArray) == DBUS_TYPE_DICT_ENTRY); - - // open containing dict - DBusMessageIter dict; - dbus_message_iter_recurse(&dictArray, &dict); - - // look for dict with string "uris" - DISTRHO_SAFE_ASSERT_BREAK(dbus_message_iter_get_arg_type(&dict) == DBUS_TYPE_STRING); - - const char* key = nullptr; - dbus_message_iter_get_basic(&dict, &key); - DISTRHO_SAFE_ASSERT_BREAK(key != nullptr); - - // keep going until we find it - while (std::strcmp(key, "uris") != 0) - { - key = nullptr; - dbus_message_iter_next(&dictArray); - DISTRHO_SAFE_ASSERT_BREAK(dbus_message_iter_get_arg_type(&dictArray) == DBUS_TYPE_DICT_ENTRY); - - dbus_message_iter_recurse(&dictArray, &dict); - DISTRHO_SAFE_ASSERT_BREAK(dbus_message_iter_get_arg_type(&dict) == DBUS_TYPE_STRING); - - dbus_message_iter_get_basic(&dict, &key); - DISTRHO_SAFE_ASSERT_BREAK(key != nullptr); - } - - if (key == nullptr) - break; - - // then comes variant - dbus_message_iter_next(&dict); - DISTRHO_SAFE_ASSERT_BREAK(dbus_message_iter_get_arg_type(&dict) == DBUS_TYPE_VARIANT); - - DBusMessageIter variant; - dbus_message_iter_recurse(&dict, &variant); - DISTRHO_SAFE_ASSERT_BREAK(dbus_message_iter_get_arg_type(&variant) == DBUS_TYPE_ARRAY); - - // open variant array (variant type is string) - DBusMessageIter variantArray; - dbus_message_iter_recurse(&variant, &variantArray); - DISTRHO_SAFE_ASSERT_BREAK(dbus_message_iter_get_arg_type(&variantArray) == DBUS_TYPE_STRING); - - const char* value = nullptr; - dbus_message_iter_get_basic(&variantArray, &value); - - // and finally we have our dear value, just make sure it is local - DISTRHO_SAFE_ASSERT_BREAK(value != nullptr); - - if (const char* const localvalue = std::strstr(value, "file:///")) - { - if (char* const decodedvalue = strdup(localvalue + 7)) - { - for (char* s = decodedvalue; (s = std::strchr(s, '%')) != nullptr; ++s) - { - if (! isHexChar(s[1]) || ! isHexChar(s[2])) - continue; - - const int decodedNum = toHexChar(s[1]) * 0x10 + toHexChar(s[2]); - - char replacementChar; - switch (decodedNum) - { - case 0x20: replacementChar = ' '; break; - case 0x22: replacementChar = '\"'; break; - case 0x23: replacementChar = '#'; break; - case 0x25: replacementChar = '%'; break; - case 0x3c: replacementChar = '<'; break; - case 0x3e: replacementChar = '>'; break; - case 0x5b: replacementChar = '['; break; - case 0x5c: replacementChar = '\\'; break; - case 0x5d: replacementChar = ']'; break; - case 0x5e: replacementChar = '^'; break; - case 0x60: replacementChar = '`'; break; - case 0x7b: replacementChar = '{'; break; - case 0x7c: replacementChar = '|'; break; - case 0x7d: replacementChar = '}'; break; - case 0x7e: replacementChar = '~'; break; - default: continue; - } - - s[0] = replacementChar; - std::memmove(s + 1, s + 3, std::strlen(s) - 2); - } - - handle->selectedFile = decodedvalue; - } - } - - } while(false); - - if (handle->selectedFile == nullptr) - handle->selectedFile = kSelectedFileCancelled; - } - - dbus_message_unref(msg); - } - } -#endif - -#ifdef HAVE_X11 - Display* const x11display = handle->x11display; - - if (x11display == nullptr) - return false; - - XEvent event; - while (XPending(x11display) > 0) - { - XNextEvent(x11display, &event); - - if (x_fib_handle_events(x11display, &event) == 0) - continue; - - if (x_fib_status() > 0) - handle->selectedFile = x_fib_filename(); - else - handle->selectedFile = kSelectedFileCancelled; - - x_fib_close(x11display); - XCloseDisplay(x11display); - handle->x11display = nullptr; - break; - } -#endif - - return handle->selectedFile != nullptr; -} - -// -------------------------------------------------------------------------------------------------------------------- -// close sofd file dialog - -void fileBrowserClose(const FileBrowserHandle handle) -{ -#ifdef DISTRHO_OS_WASM - if (handle->saving && fileBrowserGetPath(handle) != nullptr) - downloadWebBrowserFile(handle->defaultName); -#endif - -#ifdef HAVE_X11 - if (Display* const x11display = handle->x11display) - x_fib_close(x11display); -#endif - - delete handle; -} - -// -------------------------------------------------------------------------------------------------------------------- -// get path chosen via sofd file dialog - -const char* fileBrowserGetPath(const FileBrowserHandle handle) -{ - if (const char* const selectedFile = handle->selectedFile) - if (selectedFile != kSelectedFileCancelled && std::strcmp(selectedFile, kSelectedFileCancelled) != 0) - return selectedFile; - - return nullptr; -} - -// -------------------------------------------------------------------------------------------------------------------- - -#ifdef FILE_BROWSER_DIALOG_DGL_NAMESPACE -END_NAMESPACE_DGL -#else -END_NAMESPACE_DISTRHO -#endif - -#undef FILE_BROWSER_DIALOG_DISTRHO_NAMESPACE -#undef FILE_BROWSER_DIALOG_DGL_NAMESPACE -#undef FILE_BROWSER_DIALOG_NAMESPACE - -#undef fileBrowserSetPathNamespaced -#undef fileBrowserSetPathFuncName diff --git a/dpf/distrho/extra/FileBrowserDialogImpl.hpp b/dpf/distrho/extra/FileBrowserDialogImpl.hpp deleted file mode 100644 index 8f5f4f0..0000000 --- a/dpf/distrho/extra/FileBrowserDialogImpl.hpp +++ /dev/null @@ -1,129 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2024 Filipe Coelho - * - * Permission to use, copy, modify, and/or distribute this software for any purpose with - * or without fee is hereby granted, provided that the above copyright notice and this - * permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#if !defined(DISTRHO_FILE_BROWSER_DIALOG_HPP_INCLUDED) && !defined(DGL_FILE_BROWSER_DIALOG_HPP_INCLUDED) -# error bad include -#endif - -#if !defined(DGL_USE_FILE_BROWSER) && defined(DISTRHO_UI_FILE_BROWSER) && DISTRHO_UI_FILE_BROWSER == 0 -# error To use File Browser in DPF plugins please set DISTRHO_UI_FILE_BROWSER to 1 -#endif - -// -------------------------------------------------------------------------------------------------------------------- -// File Browser Dialog stuff - -struct FileBrowserData; -typedef FileBrowserData* FileBrowserHandle; - -// -------------------------------------------------------------------------------------------------------------------- - -/** - File browser options, for customizing the file browser dialog.@n - By default the file browser dialog will be work as "open file" in the current working directory. -*/ -struct FileBrowserOptions { - /** Whether we are saving, opening files otherwise (default) */ - bool saving; - - /** Default filename when saving, required in some platforms (basename without path separators) */ - const char* defaultName; - - /** Start directory, uses current working directory if null */ - const char* startDir; - - /** File browser dialog window title, uses "FileBrowser" if null */ - const char* title; - - /** Class name of the matching Application instance that controls this dialog */ - const char* className; - - // TODO file filter - - /** - File browser button state. - This allows to customize the behaviour of the file browse dialog buttons. - Note these are merely hints, not all systems support them. - */ - enum ButtonState { - kButtonInvisible, - kButtonVisibleUnchecked, - kButtonVisibleChecked, - }; - - /** - File browser buttons. - */ - struct Buttons { - /** Whether to list all files vs only those with matching file extension */ - ButtonState listAllFiles; - /** Whether to show hidden files */ - ButtonState showHidden; - /** Whether to show list of places (bookmarks) */ - ButtonState showPlaces; - - /** Constructor for default values */ - Buttons() - : listAllFiles(kButtonVisibleChecked), - showHidden(kButtonVisibleUnchecked), - showPlaces(kButtonVisibleChecked) {} - } buttons; - - /** Constructor for default values */ - FileBrowserOptions() - : saving(false), - defaultName(nullptr), - startDir(nullptr), - title(nullptr), - className(nullptr), - buttons() {} -}; - -// -------------------------------------------------------------------------------------------------------------------- - -/** - Create a new file browser dialog. - - @p isEmbed: Whether the window this dialog belongs to is an embed/child window (needed to close dialog on Windows) - @p windowId: The native window id to attach this dialog to as transient parent (X11 Window, HWND or NSView*) - @p scaleFactor: Scale factor to use (only used on X11) - @p options: Extra options, optional - By default the file browser dialog will work as "open file" in the current working directory. -*/ -FileBrowserHandle fileBrowserCreate(bool isEmbed, - uintptr_t windowId, - double scaleFactor, - const FileBrowserOptions& options = FileBrowserOptions()); - -/** - Idle the file browser dialog handle.@n - Returns true if dialog was closed (with or without a file selection), - in which case this idle function must not be called anymore for this handle. - You can then call fileBrowserGetPath to know the selected file (or null if cancelled). -*/ -bool fileBrowserIdle(FileBrowserHandle handle); - -/** - Close and free the file browser dialog, handle must not be used afterwards. -*/ -void fileBrowserClose(FileBrowserHandle handle); - -/** - Get the path chosen by the user or null.@n - Should only be called after fileBrowserIdle returns true. -*/ -const char* fileBrowserGetPath(FileBrowserHandle handle); - -// -------------------------------------------------------------------------------------------------------------------- diff --git a/dpf/distrho/extra/Filesystem.hpp b/dpf/distrho/extra/Filesystem.hpp deleted file mode 100644 index 2fbc32a..0000000 --- a/dpf/distrho/extra/Filesystem.hpp +++ /dev/null @@ -1,106 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2025 Filipe Coelho - * - * Permission to use, copy, modify, and/or distribute this software for any purpose with - * or without fee is hereby granted, provided that the above copyright notice and this - * permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#ifndef DISTRHO_FILESYSTEM_UTILS_HPP_INCLUDED -#define DISTRHO_FILESYSTEM_UTILS_HPP_INCLUDED - -#include "String.hpp" - -#include - -#ifdef DISTRHO_OS_WINDOWS -# include -#endif - -START_NAMESPACE_DISTRHO - -// -------------------------------------------------------------------------------------------------------------------- -// filesystem related calls - -/* - * Wrapper around `fopen` call, needed on Windows because its C standard functions use ASCII instead of UTF-8. - */ -static inline -FILE* d_fopen(const char* const pathname, const char* const mode) -{ - #ifdef DISTRHO_OS_WINDOWS - WCHAR lpathname[MAX_PATH]; - WCHAR lmode[4]; - if (MultiByteToWideChar(CP_UTF8, 0, pathname, -1, lpathname, ARRAY_SIZE(lpathname)) != 0 && - MultiByteToWideChar(CP_UTF8, 0, mode, -1, lmode, ARRAY_SIZE(lmode)) != 0) - return _wfopen(lpathname, lmode); - #endif - - return fopen(pathname, mode); -} - -// -------------------------------------------------------------------------------------------------------------------- -// filesystem related classes - -/** - Handy class to help write files in a safe way, which does: - - open pathname + ".tmp" instead of opening a file directly (so partial writes are safe) - - on close, flush data to disk and rename file to remove ".tmp" - - To use it, create a local variable (on the stack) and call ok() or manually check @a fd variable. - @code - if (const SafeFileWriter file("/path/to/file.txt"); file.ok()) - file.write("Success!"); - @endcode - */ -struct SafeFileWriter -{ - String filename; - FILE* const fd; - - /** - Constructor, opening @a pathname + ".tmp" for writing. - */ - SafeFileWriter(const char* const pathname, const char* const mode = "w") - : filename(pathname), - fd(d_fopen(filename + ".tmp", mode)) {} - - /** - Destructor, will flush file data contents, close and rename file. - */ - ~SafeFileWriter() - { - if (fd == nullptr) - return; - - std::fflush(fd); - std::fclose(fd); - std::rename(filename + ".tmp", filename); - } - - /** Check if the file was opened successfully. */ - inline bool ok() const noexcept - { - return fd != nullptr; - } - - /** Wrapper around `fwrite`, purely for convenience. */ - inline size_t write(const void* const ptr, const size_t size, const size_t nmemb = 1) const - { - return std::fwrite(ptr, size, nmemb, fd); - } -}; - -// -------------------------------------------------------------------------------------------------------------------- - -END_NAMESPACE_DISTRHO - -#endif // DISTRHO_FILESYSTEM_UTILS_HPP_INCLUDED diff --git a/dpf/distrho/extra/Runner.hpp b/dpf/distrho/extra/Runner.hpp deleted file mode 100644 index f611642..0000000 --- a/dpf/distrho/extra/Runner.hpp +++ /dev/null @@ -1,251 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2022 Filipe Coelho - * - * Permission to use, copy, modify, and/or distribute this software for any purpose with - * or without fee is hereby granted, provided that the above copyright notice and this - * permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#ifndef DISTRHO_RUNNER_HPP_INCLUDED -#define DISTRHO_RUNNER_HPP_INCLUDED - -#include "../DistrhoUtils.hpp" - -#ifndef DISTRHO_OS_WASM -# include "Thread.hpp" -#else -# include "String.hpp" -# include -#endif - -START_NAMESPACE_DISTRHO - -#ifdef DISTRHO_RUNNER_INDIRECT_WASM_CALLS -long d_emscripten_set_interval(void (*)(void*), double, void*); -void d_emscripten_clear_interval(long); -#else -# define d_emscripten_set_interval emscripten_set_interval -# define d_emscripten_clear_interval emscripten_clear_interval -#endif - -// ------------------------------------------------------------------------------------------------------------------- -// Runner class - -/** - Runner class for DPF. - - This is a handy class that handles "idle" time in either background or main thread, - whichever is more suitable to the target platform. - Typically background threads on desktop platforms, main thread on web. - - A single function is expected to be implemented by subclasses, - which directly allows it to stop the runner by returning false. - - You can use it for quick operations that do not need to be handled in the main thread if possible. - The target is to spread out execution over many runs, instead of spending a lot of time on a single task. - */ -class Runner -{ -protected: - /* - * Constructor. - */ - Runner(const char* const runnerName = nullptr) noexcept - #ifndef DISTRHO_OS_WASM - : fRunnerThread(this, runnerName), - fTimeInterval(0) - #else - : fRunnerName(runnerName), - fIntervalId(0) - #endif - { - } - - /* - * Destructor. - */ - virtual ~Runner() /*noexcept*/ - { - DISTRHO_SAFE_ASSERT(! isRunnerActive()); - - stopRunner(); - } - - /* - * Virtual function to be implemented by the subclass. - * Return true to keep running, false to stop execution. - */ - virtual bool run() = 0; - - /* - * Check if the runner should stop. - * To be called from inside the runner to know if a stop request has been made. - */ - bool shouldRunnerStop() const noexcept - { - #ifndef DISTRHO_OS_WASM - return fRunnerThread.shouldThreadExit(); - #else - return fIntervalId == 0; - #endif - } - - // --------------------------------------------------------------------------------------------------------------- - -public: - /* - * Check if the runner is active. - */ - bool isRunnerActive() noexcept - { - #ifndef DISTRHO_OS_WASM - return fRunnerThread.isThreadRunning(); - #else - return fIntervalId != 0; - #endif - } - - /* - * Start the runner. - */ - bool startRunner(const uint timeIntervalMilliseconds = 0) noexcept - { - #ifndef DISTRHO_OS_WASM - DISTRHO_SAFE_ASSERT_RETURN(!fRunnerThread.isThreadRunning(), false); - fTimeInterval = timeIntervalMilliseconds; - return fRunnerThread.startThread(); - #else - DISTRHO_SAFE_ASSERT_RETURN(fIntervalId == 0, false); - fIntervalId = d_emscripten_set_interval(_entryPoint, timeIntervalMilliseconds, this); - return true; - #endif - } - - /* - * Stop the runner. - * This will signal the runner to stop if active, and wait until it finishes. - */ - bool stopRunner() noexcept - { - #ifndef DISTRHO_OS_WASM - return fRunnerThread.stopThread(-1); - #else - signalRunnerShouldStop(); - return true; - #endif - } - - /* - * Tell the runner to stop as soon as possible. - */ - void signalRunnerShouldStop() noexcept - { - #ifndef DISTRHO_OS_WASM - fRunnerThread.signalThreadShouldExit(); - #else - if (fIntervalId != 0) - { - d_emscripten_clear_interval(fIntervalId); - fIntervalId = 0; - } - #endif - } - - // --------------------------------------------------------------------------------------------------------------- - - /* - * Returns the name of the runner. - * This is the name that gets set in the constructor. - */ - const String& getRunnerName() const noexcept - { - #ifndef DISTRHO_OS_WASM - return fRunnerThread.getThreadName(); - #else - return fRunnerName; - #endif - } - - // --------------------------------------------------------------------------------------------------------------- - -private: -#ifndef DISTRHO_OS_WASM - class RunnerThread : public Thread - { - Runner* const runner; - - public: - RunnerThread(Runner* const r, const char* const rn) - : Thread(rn), - runner(r) {} - - protected: - void run() override - { - const uint timeInterval = runner->fTimeInterval; - - while (!shouldThreadExit()) - { - bool stillRunning = false; - - try { - stillRunning = runner->run(); - } catch(...) {} - - if (stillRunning && !shouldThreadExit()) - { - if (timeInterval != 0) - d_msleep(timeInterval); - - // FIXME - // pthread_yield(); - continue; - } - - break; - } - } - } fRunnerThread; - - uint fTimeInterval; -#else - const String fRunnerName; - long fIntervalId; - - void _runEntryPoint() noexcept - { - bool stillRunning = false; - - try { - stillRunning = run(); - } catch(...) {} - - if (fIntervalId != 0 && !stillRunning) - { - d_emscripten_clear_interval(fIntervalId); - fIntervalId = 0; - } - } - - static void _entryPoint(void* const userData) noexcept - { - static_cast(userData)->_runEntryPoint(); - } -#endif - - DISTRHO_DECLARE_NON_COPYABLE(Runner) -}; - -// ------------------------------------------------------------------------------------------------------------------- - -END_NAMESPACE_DISTRHO - -#endif // DISTRHO_RUNNER_HPP_INCLUDED diff --git a/dpf/distrho/extra/Time.hpp b/dpf/distrho/extra/Time.hpp deleted file mode 100644 index e219cc8..0000000 --- a/dpf/distrho/extra/Time.hpp +++ /dev/null @@ -1,127 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2024 Filipe Coelho - * - * Permission to use, copy, modify, and/or distribute this software for any purpose with - * or without fee is hereby granted, provided that the above copyright notice and this - * permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#ifndef DISTRHO_TIME_HPP_INCLUDED -#define DISTRHO_TIME_HPP_INCLUDED - -#include "../DistrhoUtils.hpp" - -#ifdef DISTRHO_OS_WINDOWS -# include -# include -# include -#else -# include -#endif - -START_NAMESPACE_DISTRHO - -// ----------------------------------------------------------------------------------------------------------- -// d_gettime_* - -/* - * Get a monotonically-increasing time in milliseconds. - */ -static inline -uint32_t d_gettime_ms() noexcept -{ - #if defined(DISTRHO_OS_MAC) - static const time_t s = clock_gettime_nsec_np(CLOCK_UPTIME_RAW) / 1000000; - return (clock_gettime_nsec_np(CLOCK_UPTIME_RAW) / 1000000) - s; - #elif defined(DISTRHO_OS_WINDOWS) - return static_cast(timeGetTime()); - #else - static struct { - timespec ts; - int r; - uint32_t ms; - } s = { {}, clock_gettime(CLOCK_MONOTONIC, &s.ts), static_cast(s.ts.tv_sec * 1000 + - s.ts.tv_nsec / 1000000) }; - timespec ts; - clock_gettime(CLOCK_MONOTONIC, &ts); - return (ts.tv_sec * 1000 + ts.tv_nsec / 1000000) - s.ms; - #endif -} - -/* - * Get a monotonically-increasing time in microseconds. - */ -static inline -uint64_t d_gettime_us() noexcept -{ - #if defined(DISTRHO_OS_MAC) - static const uint64_t s = clock_gettime_nsec_np(CLOCK_UPTIME_RAW) / 1000; - return (clock_gettime_nsec_np(CLOCK_UPTIME_RAW) / 1000) - s; - #elif defined(DISTRHO_OS_WINDOWS) - static struct { - LARGE_INTEGER freq; - LARGE_INTEGER counter; - BOOL r1, r2; - } s = { {}, {}, QueryPerformanceFrequency(&s.freq), QueryPerformanceCounter(&s.counter) }; - - LARGE_INTEGER counter; - QueryPerformanceCounter(&counter); - return (counter.QuadPart - s.counter.QuadPart) * 1000000 / s.freq.QuadPart; - #else - static struct { - timespec ts; - int r; - uint64_t us; - } s = { {}, clock_gettime(CLOCK_MONOTONIC, &s.ts), static_cast(s.ts.tv_sec * 1000000 + - s.ts.tv_nsec / 1000) }; - timespec ts; - clock_gettime(CLOCK_MONOTONIC, &ts); - return (ts.tv_sec * 1000000 + ts.tv_nsec / 1000) - s.us; - #endif -} - -/* - * Get a monotonically-increasing time in nanoseconds. - */ -static inline -uint64_t d_gettime_ns() noexcept -{ - #if defined(DISTRHO_OS_MAC) - static const uint64_t s = clock_gettime_nsec_np(CLOCK_UPTIME_RAW); - return clock_gettime_nsec_np(CLOCK_UPTIME_RAW) - s; - #elif defined(DISTRHO_OS_WINDOWS) - static struct { - LARGE_INTEGER freq; - LARGE_INTEGER counter; - BOOL r1, r2; - } s = { {}, {}, QueryPerformanceFrequency(&s.freq), QueryPerformanceCounter(&s.counter) }; - - LARGE_INTEGER counter; - QueryPerformanceCounter(&counter); - return (counter.QuadPart - s.counter.QuadPart) * 1000000000ULL / s.freq.QuadPart; - #else - static struct { - timespec ts; - int r; - uint64_t ns; - } s = { {}, clock_gettime(CLOCK_MONOTONIC, &s.ts), static_cast(s.ts.tv_sec * 1000000000ULL + - s.ts.tv_nsec) }; - timespec ts; - clock_gettime(CLOCK_MONOTONIC, &ts); - return (ts.tv_sec * 1000000000ULL + ts.tv_nsec) - s.ns; - #endif -} - -// ----------------------------------------------------------------------------------------------------------- - -END_NAMESPACE_DISTRHO - -#endif // DISTRHO_TIME_HPP_INCLUDED diff --git a/dpf/distrho/extra/WebView.hpp b/dpf/distrho/extra/WebView.hpp deleted file mode 100644 index fdc6504..0000000 --- a/dpf/distrho/extra/WebView.hpp +++ /dev/null @@ -1,28 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2024 Filipe Coelho - * - * Permission to use, copy, modify, and/or distribute this software for any purpose with - * or without fee is hereby granted, provided that the above copyright notice and this - * permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#ifndef DISTRHO_WEB_VIEW_HPP_INCLUDED -#define DISTRHO_WEB_VIEW_HPP_INCLUDED - -#include "../DistrhoUtils.hpp" - -START_NAMESPACE_DISTRHO - -#include "WebViewImpl.hpp" - -END_NAMESPACE_DISTRHO - -#endif // DISTRHO_WEB_VIEW_HPP_INCLUDED diff --git a/dpf/distrho/extra/WebViewImpl.cpp b/dpf/distrho/extra/WebViewImpl.cpp deleted file mode 100644 index 136375a..0000000 --- a/dpf/distrho/extra/WebViewImpl.cpp +++ /dev/null @@ -1,2072 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2025 Filipe Coelho - * - * Permission to use, copy, modify, and/or distribute this software for any purpose with - * or without fee is hereby granted, provided that the above copyright notice and this - * permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#if !defined(DISTRHO_WEB_VIEW_HPP_INCLUDED) && !defined(DGL_WEB_VIEW_HPP_INCLUDED) -# error bad include -#endif -#if !defined(WEB_VIEW_DISTRHO_NAMESPACE) && !defined(WEB_VIEW_DGL_NAMESPACE) -# error bad usage -#endif - -// #undef Bool -// #undef CursorShape -// #undef Expose -// #undef FocusIn -// #undef FocusOut -// #undef FontChange -// #undef KeyPress -// #undef KeyRelease -// #undef None -// #undef Status -// #define QT_NO_VERSION_TAGGING -// #include -// #include -// #include -// #include -// #include -// #undef signals - -// #include -// #include -// #include - -#ifdef DISTRHO_OS_MAC -# define WEB_VIEW_USING_MACOS_WEBKIT 1 -#else -# define WEB_VIEW_USING_MACOS_WEBKIT 0 -#endif - -#ifdef DISTRHO_OS_WINDOWS -# define WEB_VIEW_USING_CHOC 1 -#else -# define WEB_VIEW_USING_CHOC 0 -#endif - -#if defined(HAVE_X11) && defined(DISTRHO_OS_LINUX) -# define WEB_VIEW_USING_X11_IPC 1 -#else -# define WEB_VIEW_USING_X11_IPC 0 -#endif - -#if WEB_VIEW_USING_CHOC -# include "WebViewWin32.hpp" -# include "String.hpp" -#elif WEB_VIEW_USING_MACOS_WEBKIT -# include -# include -#elif WEB_VIEW_USING_X11_IPC -# include "ChildProcess.hpp" -# include "RingBuffer.hpp" -# include "String.hpp" -# include -# include -# include -# include -# include -# include -# include -# include -# ifdef DISTRHO_PROPER_CPP11_SUPPORT -# include -# endif -# ifdef __linux__ -# include -# include -# include -# else -# include -# endif -#endif - -// ----------------------------------------------------------------------------------------------------------- - -#if WEB_VIEW_USING_MACOS_WEBKIT - -#define MACRO_NAME2(a, b, c) a ## b ## c -#define MACRO_NAME(a, b, c) MACRO_NAME2(a, b, c) - -#define WEB_VIEW_DELEGATE_CLASS_NAME \ - MACRO_NAME(WebViewDelegate_, _, WEB_VIEW_NAMESPACE) - -@interface WEB_VIEW_DELEGATE_CLASS_NAME : NSObject -@end - -@implementation WEB_VIEW_DELEGATE_CLASS_NAME { -@public - WEB_VIEW_NAMESPACE::WebViewMessageCallback callback; - void* callbackPtr; - bool loaded; -} - -- (void)webView:(WKWebView *)webview - didFinishNavigation:(WKNavigation*)navigation -{ - d_stdout("page loaded"); - loaded = true; -} - -- (void)webView:(WKWebView*)webview - runJavaScriptAlertPanelWithMessage:(NSString*)message - initiatedByFrame:(WKFrameInfo*)frame - completionHandler:(void (^)(void))completionHandler -{ - NSAlert* const alert = [[NSAlert alloc] init]; - [alert addButtonWithTitle:@"OK"]; - [alert setInformativeText:message]; - [alert setMessageText:@"Alert"]; - - dispatch_async(dispatch_get_main_queue(), ^ - { - [alert beginSheetModalForWindow:[webview window] - completionHandler:^(NSModalResponse) - { - completionHandler(); - [alert release]; - }]; - }); -} - -- (void)webView:(WKWebView*)webview - runJavaScriptConfirmPanelWithMessage:(NSString*)message - initiatedByFrame:(WKFrameInfo*)frame - completionHandler:(void (^)(BOOL))completionHandler -{ - NSAlert* const alert = [[NSAlert alloc] init]; - [alert addButtonWithTitle:@"OK"]; - [alert addButtonWithTitle:@"Cancel"]; - [alert setInformativeText:message]; - [alert setMessageText:@"Confirm"]; - - dispatch_async(dispatch_get_main_queue(), ^ - { - [alert beginSheetModalForWindow:[webview window] - completionHandler:^(NSModalResponse result) - { - completionHandler(result == NSAlertFirstButtonReturn); - [alert release]; - }]; - }); -} - -- (void)webView:(WKWebView*)webview - runJavaScriptTextInputPanelWithPrompt:(NSString*)prompt - defaultText:(NSString*)defaultText - initiatedByFrame:(WKFrameInfo*)frame - completionHandler:(void (^)(NSString*))completionHandler -{ - NSTextField* const input = [[NSTextField alloc] initWithFrame:NSMakeRect(0, 0, 250, 30)]; - [input setStringValue:defaultText]; - - NSAlert* const alert = [[NSAlert alloc] init]; - [alert setAccessoryView:input]; - [alert addButtonWithTitle:@"OK"]; - [alert addButtonWithTitle:@"Cancel"]; - [alert setInformativeText:prompt]; - [alert setMessageText: @"Prompt"]; - - dispatch_async(dispatch_get_main_queue(), ^ - { - [alert beginSheetModalForWindow:[webview window] - completionHandler:^(NSModalResponse result) - { - [input validateEditing]; - completionHandler(result == NSAlertFirstButtonReturn ? [input stringValue] : nil); - [alert release]; - }]; - }); -} - -- (void)webView:(WKWebView*)webview - runOpenPanelWithParameters:(WKOpenPanelParameters*)params - initiatedByFrame:(WKFrameInfo*)frame - completionHandler:(void (^)(NSArray*))completionHandler -{ - NSOpenPanel* const panel = [[NSOpenPanel alloc] init]; - - [panel setAllowsMultipleSelection:[params allowsMultipleSelection]]; - // [panel setAllowedFileTypes:(NSArray*)[params _allowedFileExtensions]]; - [panel setCanChooseDirectories:[params allowsDirectories]]; - [panel setCanChooseFiles:![params allowsDirectories]]; - - dispatch_async(dispatch_get_main_queue(), ^ - { - [panel beginSheetModalForWindow:[webview window] - completionHandler:^(NSModalResponse result) - { - completionHandler(result == NSModalResponseOK ? [panel URLs] : nil); - [panel release]; - }]; - }); -} - -- (void)userContentController:(WKUserContentController*)userContentController - didReceiveScriptMessage:(WKScriptMessage*)message -{ - NSString* const nsstring = static_cast([message body]); - char* const string = strdup([nsstring UTF8String]); - d_debug("JS call received '%s' %p", string, callback); - - if (callback != nullptr) - callback(callbackPtr, string); - - std::free(string); -} - -@end - -#endif // WEB_VIEW_USING_MACOS_WEBKIT - -// ----------------------------------------------------------------------------------------------------------- - -#ifdef WEB_VIEW_DGL_NAMESPACE -START_NAMESPACE_DGL -using DISTRHO_NAMESPACE::String; -#else -START_NAMESPACE_DISTRHO -#endif - -// ----------------------------------------------------------------------------------------------------------- - -#if WEB_VIEW_USING_X11_IPC - -#ifdef WEB_VIEW_DGL_NAMESPACE -using DISTRHO_NAMESPACE::ChildProcess; -using DISTRHO_NAMESPACE::RingBufferControl; -#endif - -#ifdef __linux__ -typedef int32_t ipc_sem_t; -#else -typedef sem_t ipc_sem_t; -#endif - -enum WebViewMessageType { - kWebViewMessageNull, - kWebViewMessageInitData, - kWebViewMessageEvaluateJS, - kWebViewMessageCallback, - kWebViewMessageReload -}; - -struct WebViewSharedBuffer { - static constexpr const uint32_t size = 0x100000; - ipc_sem_t sem; - uint32_t head, tail, wrtn; - bool invalidateCommit; - uint8_t buf[size]; -}; - -struct WebViewRingBuffer { - WebViewSharedBuffer server; - WebViewSharedBuffer client; - bool valid; -}; - -static void webview_wake(ipc_sem_t* const sem) -{ - #ifdef __linux__ - if (__sync_bool_compare_and_swap(sem, 0, 1)) - syscall(SYS_futex, sem, FUTEX_WAKE, 1, nullptr, nullptr, 0); - #else - sem_post(sem); - #endif -} - -static bool webview_timedwait(ipc_sem_t* const sem) -{ - #ifdef __linux__ - const struct timespec timeout = { 1, 0 }; - for (;;) - { - if (__sync_bool_compare_and_swap(sem, 1, 0)) - return true; - if (syscall(SYS_futex, sem, FUTEX_WAIT, 0, &timeout, nullptr, 0) != 0) - if (errno != EAGAIN && errno != EINTR) - return false; - } - #else - struct timespec timeout; - if (clock_gettime(CLOCK_REALTIME, &timeout) != 0) - return false; - - timeout.tv_sec += 1; - - for (int r;;) - { - r = sem_timedwait(sem, &timeout); - - if (r < 0) - r = errno; - - if (r == EINTR) - continue; - - return r == 0; - } - #endif -} - -static void getFilenameFromFunctionPtr(char filename[PATH_MAX], const void* const ptr) -{ - Dl_info info = {}; - dladdr(ptr, &info); - - if (info.dli_fname[0] == '.' && info.dli_fname[1] != '.') - { - if (getcwd(filename, PATH_MAX - 1) == nullptr) - filename[0] = '\0'; - std::strncat(filename, info.dli_fname + 1, PATH_MAX - 1); - } - else if (info.dli_fname[0] != '/') - { - if (getcwd(filename, PATH_MAX - 1) == nullptr) - filename[0] = '\0'; - else - std::strncat(filename, "/", PATH_MAX - 1); - std::strncat(filename, info.dli_fname, PATH_MAX - 1); - } - else - { - std::strncpy(filename, info.dli_fname, PATH_MAX - 1); - } -} - -#endif // WEB_VIEW_USING_X11_IPC - -// ----------------------------------------------------------------------------------------------------------- - -struct WebViewData { - #if WEB_VIEW_USING_CHOC - WebView* webview; - String url; - #elif WEB_VIEW_USING_MACOS_WEBKIT - NSView* view; - WKWebView* webview; - NSURLRequest* urlreq; - WEB_VIEW_DELEGATE_CLASS_NAME* delegate; - #elif WEB_VIEW_USING_X11_IPC - int shmfd; - char shmname[128]; - WebViewRingBuffer* shmptr; - WebViewMessageCallback callback; - void* callbackPtr; - ChildProcess p; - RingBufferControl rbctrl, rbctrl2; - ::Display* display; - ::Window childWindow; - ::Window ourWindow; - #endif - WebViewData(); - DISTRHO_DECLARE_NON_COPYABLE(WebViewData); -}; - -WebViewData::WebViewData() - #if WEB_VIEW_USING_CHOC - : webview(nullptr), - url() - #elif WEB_VIEW_USING_MACOS_WEBKIT - : view(nullptr), - webview(nullptr), - urlreq(nullptr), - delegate(nullptr) - #elif WEB_VIEW_USING_X11_IPC - : shmfd(0), - shmname(), - shmptr(nullptr), - callback(nullptr), - callbackPtr(nullptr), - p(), - rbctrl(), - rbctrl2(), - display(nullptr), - childWindow(0), - ourWindow(0) - #endif -{ - #if WEB_VIEW_USING_X11_IPC - std::memset(shmname, 0, sizeof(shmname)); - #endif -} - -// ----------------------------------------------------------------------------------------------------------- - -WebViewHandle webViewCreate(const char* const url, - const uintptr_t windowId, - const uint initialWidth, - const uint initialHeight, - const double scaleFactor, - const WebViewOptions& options) -{ -#if WEB_VIEW_USING_CHOC - WebView* const webview = webview_choc_create(options); - if (webview == nullptr) - return nullptr; - - const HWND hwnd = static_cast(webview_choc_handle(webview)); - - LONG_PTR flags = GetWindowLongPtr(hwnd, -16); - flags = (flags & ~WS_POPUP) | WS_CHILD; - SetWindowLongPtr(hwnd, -16, flags); - - SetParent(hwnd, reinterpret_cast(windowId)); - SetWindowPos(hwnd, nullptr, - options.offset.x, - options.offset.y, - initialWidth - options.offset.x, - initialHeight - options.offset.y, - SWP_NOZORDER | SWP_NOACTIVATE | SWP_FRAMECHANGED); - ShowWindow(hwnd, SW_SHOW); - - WebViewData* const whandle = new WebViewData; - whandle->webview = webview; - whandle->url = url; - - webview_choc_navigate(webview, url); - - return whandle; -#elif WEB_VIEW_USING_MACOS_WEBKIT - NSView* const view = reinterpret_cast(windowId); - - WKPreferences* const prefs = [[WKPreferences alloc] init]; - [prefs setValue:@YES forKey:@"javaScriptCanAccessClipboard"]; - [prefs setValue:@YES forKey:@"DOMPasteAllowed"]; - - // if (debug) - { - [prefs setValue:@YES forKey:@"developerExtrasEnabled"]; - // TODO enable_write_console_messages_to_stdout - } - - WKWebViewConfiguration* const config = [[WKWebViewConfiguration alloc] init]; - config.limitsNavigationsToAppBoundDomains = false; - config.preferences = prefs; - - const CGRect rect = CGRectMake(options.offset.x / scaleFactor, - options.offset.y / scaleFactor, - initialWidth / scaleFactor, - initialHeight / scaleFactor); - - WKWebView* const webview = [[WKWebView alloc] initWithFrame:rect - configuration:config]; - [webview setHidden:YES]; - [view addSubview:webview]; - - // TODO webkit_web_view_set_background_color - - WEB_VIEW_DELEGATE_CLASS_NAME* const delegate = [[WEB_VIEW_DELEGATE_CLASS_NAME alloc] init]; - delegate->callback = options.callback; - delegate->callbackPtr = options.callbackPtr; - delegate->loaded = false; - - if (WKUserContentController* const controller = [config userContentController]) - { - [controller addScriptMessageHandler:delegate name:@"external"]; - - WKUserScript* const mscript = [[WKUserScript alloc] - initWithSource:(options.callback != nullptr - ? @"function postMessage(m){window.webkit.messageHandlers.external.postMessage(m)}" - : @"function postMessage(m){}") - injectionTime:WKUserScriptInjectionTimeAtDocumentStart - forMainFrameOnly:true - ]; - [controller addUserScript:mscript]; - [mscript release]; - - if (options.initialJS != nullptr) - { - NSString* const nsInitialJS = [[NSString alloc] initWithBytes:options.initialJS - length:std::strlen(options.initialJS) - encoding:NSUTF8StringEncoding]; - - WKUserScript* const script = [[WKUserScript alloc] initWithSource:nsInitialJS - injectionTime:WKUserScriptInjectionTimeAtDocumentStart - forMainFrameOnly:true]; - - [controller addUserScript:script]; - - [script release]; - [nsInitialJS release]; - } - } - - [webview setNavigationDelegate:delegate]; - [webview setUIDelegate:delegate]; - - NSString* const nsurl = [[NSString alloc] initWithBytes:url - length:std::strlen(url) - encoding:NSUTF8StringEncoding]; - NSURLRequest* const urlreq = [[NSURLRequest alloc] initWithURL: [NSURL URLWithString: nsurl]]; - - d_stdout("url is '%s'", url); - if (std::strncmp(url, "file://", 7) == 0) - { - const char* const lastsep = std::strrchr(url + 7, '/'); - - NSString* const urlpath = [[NSString alloc] initWithBytes:url - length:(lastsep - url) - encoding:NSUTF8StringEncoding]; - - [webview loadFileRequest:urlreq - allowingReadAccessToURL:[NSURL URLWithString:urlpath]]; - - [urlpath release]; - } - else - { - [webview loadRequest:urlreq]; - } - - d_stdout("waiting for load"); - - if (! delegate->loaded) - { - NSAutoreleasePool* const pool = [[NSAutoreleasePool alloc] init]; - NSDate* const date = [NSDate dateWithTimeIntervalSinceNow:0.05]; - NSEvent* event; - - while (! delegate->loaded) - { - event = [NSApp - #ifdef __MAC_10_12 - nextEventMatchingMask:NSEventMaskAny - #else - nextEventMatchingMask:NSAnyEventMask - #endif - untilDate:date - inMode:NSDefaultRunLoopMode - dequeue:YES]; - - if (event == nil) - break; - - [NSApp sendEvent: event]; - } - - [pool release]; - } - - d_stdout("waiting done"); - - [webview setHidden:NO]; - - [nsurl release]; - [config release]; - [prefs release]; - - WebViewData* const handle = new WebViewData; - handle->view = view; - handle->webview = webview; - handle->urlreq = urlreq; - handle->delegate = delegate; - return handle; -#elif WEB_VIEW_USING_X11_IPC - // get startup paths - char ldlinux[PATH_MAX] = {}; - getFilenameFromFunctionPtr(ldlinux, dlsym(nullptr, "_rtld_global")); - - char filename[PATH_MAX] = {}; - getFilenameFromFunctionPtr(filename, reinterpret_cast(webViewCreate)); - - d_stdout("ld-linux is '%s'", ldlinux); - d_stdout("filename is '%s'", filename); - - // setup shared memory - int shmfd; - char shmname[128]; - void* shmptr; - - for (int i = 0; i < 9999; ++i) - { - snprintf(shmname, sizeof(shmname) - 1, "/dpf-webview-%d", i + 1); - shmfd = shm_open(shmname, O_CREAT|O_EXCL|O_RDWR, 0666); - - if (shmfd < 0) - continue; - - if (ftruncate(shmfd, sizeof(WebViewRingBuffer)) != 0) - { - close(shmfd); - shm_unlink(shmname); - continue; - } - - break; - } - - if (shmfd < 0) - { - d_stderr("shm_open failed: %s", strerror(errno)); - return nullptr; - } - - shmptr = mmap(nullptr, sizeof(WebViewRingBuffer), PROT_READ|PROT_WRITE, MAP_SHARED, shmfd, 0); - - if (shmptr == nullptr || shmptr == MAP_FAILED) - { - d_stderr("mmap failed: %s", strerror(errno)); - close(shmfd); - shm_unlink(shmname); - return nullptr; - } - - #ifndef __linux__ - sem_init(&handle->shmptr->client.sem, 1, 0); - sem_init(&handle->shmptr->server.sem, 1, 0); - #endif - - ::Display* const display = XOpenDisplay(nullptr); - DISTRHO_SAFE_ASSERT_RETURN(display != nullptr, nullptr); - - // set up custom child environment - uint envsize = 0; - while (environ[envsize] != nullptr) - ++envsize; - - char** const envp = new char*[envsize + 5]; - { - uint e = 0; - for (uint i = 0; i < envsize; ++i) - { - if (std::strncmp(environ[i], "LD_PRELOAD=", 11) == 0) - continue; - if (std::strncmp(environ[i], "LD_LIBRARY_PATH=", 16) == 0) - continue; - envp[e++] = strdup(environ[i]); - } - - envp[e++] = strdup("LANG=en_US.UTF-8"); - envp[e++] = ("DPF_WEB_VIEW_SCALE_FACTOR=" + String(scaleFactor)).getAndReleaseBuffer(); - envp[e++] = ("DPF_WEB_VIEW_WIN_ID=" +String(windowId)).getAndReleaseBuffer(); - - for (uint i = e; i < envsize + 5; ++i) - envp[e++] = nullptr; - } - - WebViewData* const handle = new WebViewData; - handle->callback = options.callback; - handle->callbackPtr = options.callbackPtr; - handle->shmfd = shmfd; - handle->shmptr = static_cast(shmptr); - handle->display = display; - handle->ourWindow = windowId; - std::memcpy(handle->shmname, shmname, sizeof(shmname)); - - handle->shmptr->valid = true; - - handle->rbctrl.setRingBuffer(&handle->shmptr->client, false); - handle->rbctrl.flush(); - - handle->rbctrl2.setRingBuffer(&handle->shmptr->server, false); - handle->rbctrl2.flush(); - - const char* const args[] = { ldlinux, filename, "dpf-ld-linux-webview", shmname, nullptr }; - handle->p.start(args, envp); - - for (uint i = 0; envp[i] != nullptr; ++i) - std::free(envp[i]); - delete[] envp; - - const size_t urllen = std::strlen(url) + 1; - const size_t initjslen = options.initialJS != nullptr ? std::strlen(options.initialJS) + 1 : 0; - handle->rbctrl.writeUInt(kWebViewMessageInitData) && - handle->rbctrl.writeULong(windowId) && - handle->rbctrl.writeUInt(initialWidth) && - handle->rbctrl.writeUInt(initialHeight) && - handle->rbctrl.writeDouble(scaleFactor) && - handle->rbctrl.writeInt(options.offset.x) && - handle->rbctrl.writeInt(options.offset.y) && - handle->rbctrl.writeUInt(urllen) && - handle->rbctrl.writeCustomData(url, urllen) && - handle->rbctrl.writeUInt(initjslen) && - initjslen != 0 && - handle->rbctrl.writeCustomData(options.initialJS, initjslen); - handle->rbctrl.commitWrite(); - - webview_wake(&handle->shmptr->client.sem); - - for (int i = 0; i < 5 && handle->p.isRunning(); ++i) - { - if (webview_timedwait(&handle->shmptr->server.sem)) - return handle; - } - - d_stderr("webview client side failed to start"); - webViewDestroy(handle); - return nullptr; -#endif - - // maybe unused - (void)windowId; - (void)initialWidth; - (void)initialHeight; - (void)scaleFactor; - (void)options; - return nullptr; -} - -void webViewDestroy(const WebViewHandle handle) -{ - #if WEB_VIEW_USING_CHOC - webview_choc_destroy(handle->webview); - #elif WEB_VIEW_USING_MACOS_WEBKIT - [handle->webview setHidden:YES]; - [handle->webview removeFromSuperview]; - [handle->urlreq release]; - // [handle->delegate release]; - #elif WEB_VIEW_USING_X11_IPC - #ifndef __linux__ - sem_destroy(&handle->shmptr->client.sem); - sem_destroy(&handle->shmptr->server.sem); - #endif - munmap(handle->shmptr, sizeof(WebViewRingBuffer)); - close(handle->shmfd); - shm_unlink(handle->shmname); - XCloseDisplay(handle->display); - #endif - delete handle; -} - -void webViewIdle(const WebViewHandle handle) -{ - #if WEB_VIEW_USING_X11_IPC - uint32_t size = 0; - void* buffer = nullptr; - - while (handle->rbctrl2.isDataAvailableForReading()) - { - switch (handle->rbctrl2.readUInt()) - { - case kWebViewMessageCallback: - if (const uint32_t len = handle->rbctrl2.readUInt()) - { - if (len > size) - { - size = len; - buffer = std::realloc(buffer, len); - - if (buffer == nullptr) - { - d_stderr("server out of memory, abort!"); - handle->rbctrl2.flush(); - return; - } - } - - if (handle->rbctrl2.readCustomData(buffer, len)) - { - d_debug("server kWebViewMessageCallback -> '%s'", static_cast(buffer)); - if (handle->callback != nullptr) - handle->callback(handle->callbackPtr, static_cast(buffer)); - continue; - } - } - break; - } - - d_stderr("server ringbuffer data race, abort!"); - handle->rbctrl2.flush(); - break; - } - - std::free(buffer); - #else - // unused - (void)handle; - #endif -} - -void webViewEvaluateJS(const WebViewHandle handle, const char* const js) -{ - #if WEB_VIEW_USING_CHOC - webview_choc_eval(handle->webview, js); - #elif WEB_VIEW_USING_MACOS_WEBKIT - NSString* const nsjs = [[NSString alloc] initWithBytes:js - length:std::strlen(js) - encoding:NSUTF8StringEncoding]; - [handle->webview evaluateJavaScript:nsjs completionHandler:nil]; - [nsjs release]; - #elif WEB_VIEW_USING_X11_IPC - d_debug("evaluateJS '%s'", js); - const size_t len = std::strlen(js) + 1; - handle->rbctrl.writeUInt(kWebViewMessageEvaluateJS) && - handle->rbctrl.writeUInt(len) && - handle->rbctrl.writeCustomData(js, len); - if (handle->rbctrl.commitWrite()) - webview_wake(&handle->shmptr->client.sem); - #endif - - // maybe unused - (void)handle; - (void)js; -} - -void webViewReload(const WebViewHandle handle) -{ - #if WEB_VIEW_USING_CHOC - webview_choc_navigate(handle->webview, handle->url); - #elif WEB_VIEW_USING_MACOS_WEBKIT - [handle->webview loadRequest:handle->urlreq]; - #elif WEB_VIEW_USING_X11_IPC - d_stdout("reload"); - handle->rbctrl.writeUInt(kWebViewMessageReload); - if (handle->rbctrl.commitWrite()) - webview_wake(&handle->shmptr->client.sem); - #endif - - // maybe unused - (void)handle; -} - -void webViewResize(const WebViewHandle handle, const uint width, const uint height, const double scaleFactor) -{ - #if WEB_VIEW_USING_CHOC - const HWND hwnd = static_cast(webview_choc_handle(handle->webview)); - SetWindowPos(hwnd, nullptr, 0, 0, width, height, SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOZORDER); - #elif WEB_VIEW_USING_MACOS_WEBKIT - [handle->webview setFrameSize:NSMakeSize(width / scaleFactor, height / scaleFactor)]; - #elif WEB_VIEW_USING_X11_IPC - if (handle->childWindow == 0) - { - ::Window rootWindow, parentWindow; - ::Window* childWindows = nullptr; - uint numChildren = 0; - - XFlush(handle->display); - XQueryTree(handle->display, handle->ourWindow, &rootWindow, &parentWindow, &childWindows, &numChildren); - - if (numChildren == 0 || childWindows == nullptr) - return; - - handle->childWindow = childWindows[0]; - XFree(childWindows); - } - - XResizeWindow(handle->display, handle->childWindow, width, height); - XFlush(handle->display); - #endif - - // maybe unused - (void)handle; - (void)width; - (void)height; - (void)scaleFactor; -} - -#if WEB_VIEW_USING_X11_IPC - -// ----------------------------------------------------------------------------------------------------------- - -static bool running = false; -static struct WebFramework { - virtual ~WebFramework() {} - virtual void evaluate(const char* js) = 0; - virtual void reload() = 0; - virtual void terminate() = 0; - virtual void wake(WebViewRingBuffer* rb) = 0; -}* webFramework = nullptr; - -// ----------------------------------------------------------------------------------------------------------- - -struct GtkContainer; -struct GtkPlug; -struct GtkWidget; -struct GtkWindow; -struct JSCValue; -struct WebKitJavascriptResult; -struct WebKitSettings; -struct WebKitUserContentManager; -struct WebKitUserScript; -struct WebKitWebView; -typedef int gboolean; - -#define G_CALLBACK(p) reinterpret_cast(p) -#define GTK_CONTAINER(p) reinterpret_cast(p) -#define GTK_PLUG(p) reinterpret_cast(p) -#define GTK_WINDOW(p) reinterpret_cast(p) -#define WEBKIT_WEB_VIEW(p) reinterpret_cast(p) - -// ----------------------------------------------------------------------------------------------------------- - -class QApplication { uint8_t _[16 * 2]; }; -class QByteArray { public: uint8_t _[24 * 2]; }; -class QChar; -class QChildEvent; -class QColor; -class QEvent { uint8_t _[16 * 2]; }; -class QIODevice; -class QJsonObject; -class QJsonValue { uint8_t _[128 /* TODO */ * 2]; }; -class QMetaMethod; -class QMetaObject { uint8_t _[56 * 2]; }; -class QString { uint8_t _[8 * 4]; }; -class QTimerEvent; -class QUrl { uint8_t _[8 * 4]; }; -class QWebChannel { uint8_t _[128 /* TODO */ * 2]; }; -class QWebEnginePage { uint8_t _[128 /* TODO */ * 2]; }; -class QWebEngineProfile { uint8_t _[128 /* TODO */ * 2]; }; -class QWebEngineScript { uint8_t _[128 /* TODO */ * 2]; }; -class QWebEngineScriptCollection; -class QWebEngineSettings; -class QWebEngineUrlRequestJob; -class QWebEngineUrlScheme { uint8_t _[128 /* TODO */ * 2]; }; -class QWebEngineUrlSchemeHandler; -class QWebEngineView { uint8_t _[56 * 2]; }; -class QWindow; - -struct QPoint { - int _x, _y; - QPoint(int x, int y) : _x(x), _y(y) {} -}; - -struct QSize { - int _w, _h; - QSize(int w, int h) : _w(w), _h(h) {} -}; - -// ----------------------------------------------------------------------------------------------------------- - -#define JOIN(A, B) A ## B - -#define CSYM(S, NAME) \ - S NAME = reinterpret_cast(dlsym(nullptr, #NAME)); \ - DISTRHO_SAFE_ASSERT_RETURN(NAME != nullptr, false); - -#define CPPSYM(S, NAME, SN) \ - S NAME = reinterpret_cast(dlsym(nullptr, #SN)); \ - DISTRHO_SAFE_ASSERT_RETURN(NAME != nullptr, false); - -static int web_wake_idle(void* const ptr) -{ - WebViewRingBuffer* const shmptr = static_cast(ptr); - - RingBufferControl rbctrl; - rbctrl.setRingBuffer(&shmptr->client, false); - - uint32_t size = 0; - void* buffer = nullptr; - - while (rbctrl.isDataAvailableForReading()) - { - switch (rbctrl.readUInt()) - { - case kWebViewMessageEvaluateJS: - if (const uint32_t len = rbctrl.readUInt()) - { - if (len > size) - { - size = len; - buffer = realloc(buffer, len); - - if (buffer == nullptr) - { - d_stderr("client kWebViewMessageEvaluateJS out of memory, abort!"); - abort(); - } - } - - if (rbctrl.readCustomData(buffer, len)) - { - d_debug("client kWebViewMessageEvaluateJS -> '%s'", static_cast(buffer)); - webFramework->evaluate(static_cast(buffer)); - continue; - } - } - break; - case kWebViewMessageReload: - d_debug("client kWebViewMessageReload"); - webFramework->reload(); - continue; - } - - d_stderr("client ringbuffer data race, abort!"); - abort(); - } - - free(buffer); - return 0; -} - -// ----------------------------------------------------------------------------------------------------------- -// gtk3 variant - -static int gtk3_js_cb(WebKitUserContentManager*, WebKitJavascriptResult* const result, void* const arg) -{ - WebViewRingBuffer* const shmptr = static_cast(arg); - - typedef void (*g_free_t)(void*); - typedef char* (*jsc_value_to_string_t)(JSCValue*); - typedef JSCValue* (*webkit_javascript_result_get_js_value_t)(WebKitJavascriptResult*); - - CSYM(g_free_t, g_free) - CSYM(jsc_value_to_string_t, jsc_value_to_string) - CSYM(webkit_javascript_result_get_js_value_t, webkit_javascript_result_get_js_value) - - JSCValue* const value = webkit_javascript_result_get_js_value(result); - DISTRHO_SAFE_ASSERT_RETURN(value != nullptr, false); - - char* const string = jsc_value_to_string(value); - DISTRHO_SAFE_ASSERT_RETURN(string != nullptr, false); - - d_debug("js call received with data '%s'", string); - - const size_t len = std::strlen(string) + 1; - RingBufferControl rbctrl2; - rbctrl2.setRingBuffer(&shmptr->server, false); - rbctrl2.writeUInt(kWebViewMessageCallback) && - rbctrl2.writeUInt(len) && - rbctrl2.writeCustomData(string, len); - rbctrl2.commitWrite(); - - g_free(string); - return 0; -} - -static bool gtk3(Display* const display, - const Window winId, - const int x, - const int y, - const uint width, - const uint height, - double scaleFactor, - const char* const url, - const char* const initialJS, - WebViewRingBuffer* const shmptr) -{ - void* lib; - if ((lib = dlopen("libwebkit2gtk-4.0.so.37", RTLD_NOW|RTLD_GLOBAL)) == nullptr && - (lib = dlopen("libwebkit2gtk-4.1.so.0", RTLD_NOW|RTLD_GLOBAL)) == nullptr && - (lib = dlopen("libwebkit2gtk-4.0.so", RTLD_NOW|RTLD_GLOBAL)) == nullptr && - (lib = dlopen("libwebkit2gtk-4.1.so", RTLD_NOW|RTLD_GLOBAL)) == nullptr) - { - d_stdout("WebView gtk3 platform not available: %s", dlerror()); - return false; - } - - typedef void (*g_main_context_invoke_t)(void*, void*, void*); - typedef ulong (*g_signal_connect_data_t)(void*, const char*, void*, void*, void*, int); - typedef void (*gdk_set_allowed_backends_t)(const char*); - typedef void (*gtk_container_add_t)(GtkContainer*, GtkWidget*); - typedef gboolean (*gtk_init_check_t)(int*, char***); - typedef void (*gtk_main_t)(); - typedef void (*gtk_main_quit_t)(); - typedef Window (*gtk_plug_get_id_t)(GtkPlug*); - typedef GtkWidget* (*gtk_plug_new_t)(Window); - typedef void (*gtk_widget_show_all_t)(GtkWidget*); - typedef void (*gtk_window_move_t)(GtkWindow*, int, int); - typedef void (*gtk_window_set_default_size_t)(GtkWindow*, int, int); - typedef WebKitSettings* (*webkit_settings_new_t)(); - typedef void (*webkit_settings_set_enable_developer_extras_t)(WebKitSettings*, gboolean); - typedef void (*webkit_settings_set_enable_write_console_messages_to_stdout_t)(WebKitSettings*, gboolean); - typedef void (*webkit_settings_set_hardware_acceleration_policy_t)(WebKitSettings*, int); - typedef void (*webkit_settings_set_javascript_can_access_clipboard_t)(WebKitSettings*, gboolean); - typedef void (*webkit_user_content_manager_add_script_t)(WebKitUserContentManager*, WebKitUserScript*); - typedef gboolean (*webkit_user_content_manager_register_script_message_handler_t)(WebKitUserContentManager*, const char*); - typedef WebKitUserScript* (*webkit_user_script_new_t)(const char*, int, int, const char* const*, const char* const*); - typedef void* (*webkit_web_view_evaluate_javascript_t)(WebKitWebView*, const char*, ssize_t, const char*, const char*, void*, void*, void*); - typedef WebKitUserContentManager* (*webkit_web_view_get_user_content_manager_t)(WebKitWebView*); - typedef void (*webkit_web_view_load_uri_t)(WebKitWebView*, const char*); - typedef GtkWidget* (*webkit_web_view_new_with_settings_t)(WebKitSettings*); - typedef void* (*webkit_web_view_run_javascript_t)(WebKitWebView*, const char*, void*, void*, void*); - typedef void (*webkit_web_view_set_background_color_t)(WebKitWebView*, const double*); - - CSYM(g_main_context_invoke_t, g_main_context_invoke) - CSYM(g_signal_connect_data_t, g_signal_connect_data) - CSYM(gdk_set_allowed_backends_t, gdk_set_allowed_backends) - CSYM(gtk_container_add_t, gtk_container_add) - CSYM(gtk_init_check_t, gtk_init_check) - CSYM(gtk_main_t, gtk_main) - CSYM(gtk_main_quit_t, gtk_main_quit) - CSYM(gtk_plug_get_id_t, gtk_plug_get_id) - CSYM(gtk_plug_new_t, gtk_plug_new) - CSYM(gtk_widget_show_all_t, gtk_widget_show_all) - CSYM(gtk_window_move_t, gtk_window_move) - CSYM(gtk_window_set_default_size_t, gtk_window_set_default_size) - CSYM(webkit_settings_new_t, webkit_settings_new) - CSYM(webkit_settings_set_enable_developer_extras_t, webkit_settings_set_enable_developer_extras) - CSYM(webkit_settings_set_enable_write_console_messages_to_stdout_t, webkit_settings_set_enable_write_console_messages_to_stdout) - CSYM(webkit_settings_set_hardware_acceleration_policy_t, webkit_settings_set_hardware_acceleration_policy) - CSYM(webkit_settings_set_javascript_can_access_clipboard_t, webkit_settings_set_javascript_can_access_clipboard) - CSYM(webkit_user_content_manager_add_script_t, webkit_user_content_manager_add_script) - CSYM(webkit_user_content_manager_register_script_message_handler_t, webkit_user_content_manager_register_script_message_handler) - CSYM(webkit_user_script_new_t, webkit_user_script_new) - CSYM(webkit_web_view_get_user_content_manager_t, webkit_web_view_get_user_content_manager) - CSYM(webkit_web_view_load_uri_t, webkit_web_view_load_uri) - CSYM(webkit_web_view_new_with_settings_t, webkit_web_view_new_with_settings) - CSYM(webkit_web_view_set_background_color_t, webkit_web_view_set_background_color) - - // special case for legacy API handling - webkit_web_view_evaluate_javascript_t webkit_web_view_evaluate_javascript = reinterpret_cast(dlsym(nullptr, "webkit_web_view_evaluate_javascript")); - webkit_web_view_run_javascript_t webkit_web_view_run_javascript = reinterpret_cast(dlsym(nullptr, "webkit_web_view_run_javascript")); - DISTRHO_SAFE_ASSERT_RETURN(webkit_web_view_evaluate_javascript != nullptr || webkit_web_view_run_javascript != nullptr, false); - - const int gdkScale = std::fmod(scaleFactor, 1.0) >= 0.75 - ? static_cast(scaleFactor + 0.5) - : static_cast(scaleFactor); - - if (gdkScale != 1) - { - char scale[8] = {}; - std::snprintf(scale, 7, "%d", gdkScale); - setenv("GDK_SCALE", scale, 1); - - std::snprintf(scale, 7, "%.2f", (1.0 / scaleFactor) * 1.2); - setenv("GDK_DPI_SCALE", scale, 1); - } - else if (scaleFactor > 1.0) - { - char scale[8] = {}; - std::snprintf(scale, 7, "%.2f", (1.0 / scaleFactor) * 1.4); - setenv("GDK_DPI_SCALE", scale, 1); - } - - scaleFactor /= gdkScale; - - gdk_set_allowed_backends("x11"); - - if (! gtk_init_check(nullptr, nullptr)) - { - d_stderr("WebView gtk_init_check failed"); - return false; - } - - GtkWidget* const window = gtk_plug_new(winId); - DISTRHO_SAFE_ASSERT_RETURN(window != nullptr, false); - - gtk_window_set_default_size(GTK_WINDOW(window), width, height); - gtk_window_move(GTK_WINDOW(window), x, y); - - WebKitSettings* const settings = webkit_settings_new(); - DISTRHO_SAFE_ASSERT_RETURN(settings != nullptr, false); - - // TODO DOMPasteAllowed - webkit_settings_set_javascript_can_access_clipboard(settings, true); - webkit_settings_set_hardware_acceleration_policy(settings, 2 /* WEBKIT_HARDWARE_ACCELERATION_POLICY_NEVER */); - - // if (debug) - { - webkit_settings_set_enable_developer_extras(settings, true); - webkit_settings_set_enable_write_console_messages_to_stdout(settings, true); - } - - GtkWidget* const webview = webkit_web_view_new_with_settings(settings); - DISTRHO_SAFE_ASSERT_RETURN(webview != nullptr, false); - - const double color[] = {49.0/255, 54.0/255, 59.0/255, 1}; - webkit_web_view_set_background_color(WEBKIT_WEB_VIEW(webview), color); - - if (WebKitUserContentManager* const manager = webkit_web_view_get_user_content_manager(WEBKIT_WEB_VIEW(webview))) - { - g_signal_connect_data(manager, "script-message-received::external", G_CALLBACK(gtk3_js_cb), shmptr, nullptr, 0); - webkit_user_content_manager_register_script_message_handler(manager, "external"); - - WebKitUserScript* const mscript = webkit_user_script_new( - "function postMessage(m){window.webkit.messageHandlers.external.postMessage(m)}", 0, 0, nullptr, nullptr); - webkit_user_content_manager_add_script(manager, mscript); - - if (initialJS != nullptr) - { - WebKitUserScript* const script = webkit_user_script_new(initialJS, 0, 0, nullptr, nullptr); - webkit_user_content_manager_add_script(manager, script); - } - } - - webkit_web_view_load_uri(WEBKIT_WEB_VIEW(webview), url); - - gtk_container_add(GTK_CONTAINER(window), webview); - - gtk_widget_show_all(window); - - Window wid = gtk_plug_get_id(GTK_PLUG(window)); - XMapWindow(display, wid); - XFlush(display); - - struct Gtk3WebFramework : WebFramework { - const char* const _url; - WebViewRingBuffer* const _shmptr; - GtkWidget* const _webview; - const webkit_web_view_evaluate_javascript_t _webkit_web_view_evaluate_javascript; - const webkit_web_view_run_javascript_t _webkit_web_view_run_javascript; - const webkit_web_view_load_uri_t _webkit_web_view_load_uri; - const gtk_main_quit_t _gtk_main_quit; - const g_main_context_invoke_t _g_main_context_invoke; - - Gtk3WebFramework(const char* const url, - WebViewRingBuffer* const shmptr, - GtkWidget* const webview, - const webkit_web_view_evaluate_javascript_t webkit_web_view_evaluate_javascript, - const webkit_web_view_run_javascript_t webkit_web_view_run_javascript, - const webkit_web_view_load_uri_t webkit_web_view_load_uri, - const gtk_main_quit_t gtk_main_quit, - const g_main_context_invoke_t g_main_context_invoke) - : _url(url), - _shmptr(shmptr), - _webview(webview), - _webkit_web_view_evaluate_javascript(webkit_web_view_evaluate_javascript), - _webkit_web_view_run_javascript(webkit_web_view_run_javascript), - _webkit_web_view_load_uri(webkit_web_view_load_uri), - _gtk_main_quit(gtk_main_quit), - _g_main_context_invoke(g_main_context_invoke) {} - - void evaluate(const char* const js) override - { - if (_webkit_web_view_evaluate_javascript != nullptr) - _webkit_web_view_evaluate_javascript(WEBKIT_WEB_VIEW(_webview), js, -1, - nullptr, nullptr, nullptr, nullptr, nullptr); - else - _webkit_web_view_run_javascript(WEBKIT_WEB_VIEW(_webview), js, nullptr, nullptr, nullptr); - } - - void reload() override - { - _webkit_web_view_load_uri(WEBKIT_WEB_VIEW(_webview), _url); - } - - void terminate() override - { - if (running) - { - running = false; - webview_wake(&_shmptr->client.sem); - _gtk_main_quit(); - } - } - - void wake(WebViewRingBuffer* const rb) override - { - _g_main_context_invoke(NULL, G_CALLBACK(web_wake_idle), rb); - } - }; - - Gtk3WebFramework webFrameworkObj(url, - shmptr, - webview, - webkit_web_view_evaluate_javascript, - webkit_web_view_run_javascript, - webkit_web_view_load_uri, - gtk_main_quit, - g_main_context_invoke); - - webFramework = &webFrameworkObj; - - // notify server we started ok - webview_wake(&shmptr->server.sem); - - d_stdout("WebView gtk3 main loop started"); - - gtk_main(); - - d_stdout("WebView gtk3 main loop quit"); - - dlclose(lib); - return true; -} - -// ----------------------------------------------------------------------------------------------------------- -// qt common code - -#define TRACE d_stdout("%04d: %s", __LINE__, __PRETTY_FUNCTION__); - -class QObject -{ -public: - QObject(QObject* parent = nullptr) - { - static void (*m)(QObject*, QObject*) = reinterpret_cast(dlsym( - nullptr, "_ZN7QObjectC1EPS_")); - m(this, parent); - } - - virtual const QMetaObject* metaObject() const - { - static const QMetaObject* (*m)(const QObject*) = reinterpret_cast(dlsym( - nullptr, "_ZNK7QObject10metaObjectEv")); - return m(this); - } - - virtual void* qt_metacast(const char*) { return 0; } - virtual int qt_metacall(void* /* QMetaObject::Call */, int, void**) { return 0; } - virtual ~QObject() {} - - virtual bool event(QEvent* e) - { - static bool (*m)(QObject*, QEvent*) = reinterpret_cast(dlsym( - nullptr, "_ZN7QObject5eventEP6QEvent")); - return m(this, e); - } - - virtual bool eventFilter(QObject* watched, QEvent* event) - { - static bool (*m)(QObject*, QObject*, QEvent*) = reinterpret_cast(dlsym( - nullptr, "_ZN7QObject11eventFilterEPS_P6QEvent")); - return m(this, watched, event); - } - - virtual void timerEvent(QTimerEvent* event) - { - static void (*m)(QObject*, QTimerEvent*) = reinterpret_cast(dlsym( - nullptr, "_ZN7QObject10timerEventEP11QTimerEvent")); - m(this, event); - } - - virtual void childEvent(QChildEvent* event) - { - static void (*m)(QObject*, QChildEvent*) = reinterpret_cast(dlsym( - nullptr, "_ZN7QObject10childEventEP11QChildEvent")); - m(this, event); - } - - virtual void customEvent(QEvent* event) - { - static void (*m)(QObject*, QEvent*) = reinterpret_cast(dlsym( - nullptr, "_ZN7QObject11customEventEP6QEvent")); - m(this, event); - } - - virtual void connectNotify(const QMetaMethod& signal) - { - static void (*m)(QObject*, const QMetaMethod&) = reinterpret_cast(dlsym( - nullptr, "_ZN7QObject13connectNotifyERK11QMetaMethod")); - m(this, signal); - } - - virtual void disconnectNotify(const QMetaMethod& signal) - { - static void (*m)(QObject*, const QMetaMethod&) = reinterpret_cast(dlsym( - nullptr, "_ZN7QObject16disconnectNotifyERK11QMetaMethod")); - m(this, signal); - } - -private: - uint8_t _[8 * 2]; -}; - -class QWebChannelAbstractTransport : public QObject -{ -protected: - const QMetaObject* metaObject() const override - { - static const QMetaObject* (*m)(const QObject*) = reinterpret_cast(dlsym( - nullptr, "_ZNK28QWebChannelAbstractTransport10metaObjectEv")); - return m(this); - } - - void* qt_metacast(const char*) override { return 0; } - int qt_metacall(void* /* QMetaObject::Call */, int, void**) override { return 0; } - ~QWebChannelAbstractTransport() override {} - -public: - QWebChannelAbstractTransport(QObject* parent = nullptr) - : QObject(parent) - { - static void (*m)(QObject*, QObject*) = reinterpret_cast(dlsym( - nullptr, "_ZN28QWebChannelAbstractTransportC1EP7QObject")); - m(this, parent); - } - - virtual void sendMessage(const QJsonObject&) = 0; -}; - -// ----------------------------------------------------------------------------------------------------------- - -// QObject subclass for receiving events on main thread -class EventFilterQObject : public QWebChannelAbstractTransport -{ - QString qstrkey; - WebViewRingBuffer* const _rb; - bool isQt5; - -public: - EventFilterQObject(WebViewRingBuffer* const rb) - : QWebChannelAbstractTransport(), - _rb(rb), - isQt5(false) - { - void (*QString__init)(QString*, const QChar*, int) = - reinterpret_cast(dlsym(nullptr, "_ZN7QStringC2EPK5QCharx")); - - if (QString__init == nullptr) - { - isQt5 = true; - QString__init = reinterpret_cast(dlsym(nullptr, "_ZN7QStringC2EPK5QChari")); - } - - const ushort key_qchar[] = { 'm', 0 }; - QString__init(&qstrkey, reinterpret_cast(key_qchar), 1); - } - - void customEvent(QEvent*) override - { - web_wake_idle(_rb); - } - - void sendMessage(const QJsonObject& obj) override - { - static void (*QByteArray_clear)(QByteArray*) = - reinterpret_cast(dlsym(nullptr, "_ZN10QByteArray5clearEv")); - - static QJsonValue (*QJsonObject_value)(const QJsonObject*, const QString&) = - reinterpret_cast(dlsym(nullptr, "_ZNK11QJsonObject5valueERK7QString")); - - static void (*QJsonValue__deinit)(const QJsonValue*) = - reinterpret_cast(dlsym(nullptr, "_ZN10QJsonValueD1Ev")); - static QString (*QJsonValue_toString)(const QJsonValue*) = - reinterpret_cast(dlsym(nullptr, "_ZNK10QJsonValue8toStringEv")); - - static QString& (*QString_setRawData)(QString*, const QChar*, int) = - reinterpret_cast(dlsym(nullptr, "_ZN7QString10setRawDataEPK5QCharx")) ?: - reinterpret_cast(dlsym(nullptr, "_ZN7QString10setRawDataEPK5QChari")); - static QByteArray (*QString_toUtf8)(const QString*) = - reinterpret_cast(dlsym(nullptr, "_ZNK7QString6toUtf8Ev")) ?: - reinterpret_cast(dlsym(nullptr, "_ZN7QString13toUtf8_helperERKS_")); - - const QJsonValue json = QJsonObject_value(&obj, qstrkey); - QString qstrvalue = QJsonValue_toString(&json); - QByteArray data = QString_toUtf8(&qstrvalue); - - const uint8_t* const dptr = static_cast(*reinterpret_cast(data._)); - const intptr_t offset = isQt5 ? *reinterpret_cast(dptr + 16) : 16; - const char* const value = reinterpret_cast(dptr + offset); - - d_debug("js call received with data '%s'", value); - - const size_t len = std::strlen(value) + 1; - RingBufferControl rbctrl2; - rbctrl2.setRingBuffer(&_rb->server, false); - rbctrl2.writeUInt(kWebViewMessageCallback) && - rbctrl2.writeUInt(len) && - rbctrl2.writeCustomData(value, len); - rbctrl2.commitWrite(); - - // QByteArray and QString destructors are inlined and can't be called from here, call their next closest thing - QByteArray_clear(&data); - QString_setRawData(&qstrvalue, nullptr, 0); - - QJsonValue__deinit(&json); - } -}; - -// -------------------------------------------------------------------------------------------------------------------- -// qt5webengine variant - -static bool qtwebengine(const int qtVersion, - Display* const display, - const Window winId, - const int x, - const int y, - const uint width, - const uint height, - double scaleFactor, - const char* const url, - const char* const initialJS, - WebViewRingBuffer* const shmptr) -{ - void* lib; - switch (qtVersion) - { - case 5: - if ((lib = dlopen("libQt5WebEngineWidgets.so.5", RTLD_NOW|RTLD_GLOBAL)) == nullptr && - (lib = dlopen("libQt5WebEngineWidgets.so", RTLD_NOW|RTLD_GLOBAL)) == nullptr) - { - d_stdout("WebView Qt5 platform not available: %s", dlerror()); - return false; - } - break; - case 6: - if ((lib = dlopen("libQt6WebEngineWidgets.so.6", RTLD_NOW|RTLD_GLOBAL)) == nullptr && - (lib = dlopen("libQt6WebEngineWidgets.so", RTLD_NOW|RTLD_GLOBAL)) == nullptr) - { - d_stdout("WebView Qt6 platform not available: %s", dlerror()); - return false; - } - break; - default: - return false; - } - - // Qt >= 6 uses int - void (*QByteArray__init)(QByteArray*, const char*, int) = - reinterpret_cast(dlsym(nullptr, "_ZN10QByteArrayC1EPKcx")) ?: - reinterpret_cast(dlsym(nullptr, "_ZN10QByteArrayC1EPKci")); - DISTRHO_SAFE_ASSERT_RETURN(QByteArray__init != nullptr, false); - - typedef void (*QString__init_t)(QString*, const QChar*, int); - const QString__init_t QString__init = - reinterpret_cast(dlsym(nullptr, "_ZN7QStringC2EPK5QCharx")) ?: - reinterpret_cast(dlsym(nullptr, "_ZN7QStringC2EPK5QChari")); - DISTRHO_SAFE_ASSERT_RETURN(QString__init != nullptr, false); - - void (*QWebEnginePage_setWebChannel)(QWebEnginePage*, QWebChannel*, uint) = - reinterpret_cast(dlsym( - nullptr, "_ZN14QWebEnginePage13setWebChannelEP11QWebChannelj")) ?: - reinterpret_cast(dlsym( - nullptr, "_ZN14QWebEnginePage13setWebChannelEP11QWebChannel")); - DISTRHO_SAFE_ASSERT_RETURN(QWebEnginePage_setWebChannel != nullptr, false); - - // Qt >= 6 has new function signature with lambdas -#ifdef DISTRHO_PROPER_CPP11_SUPPORT - typedef void (*QWebEnginePage_runJavaScript_t)(QWebEnginePage*, const QString&, uint, const std::function&); -#else - typedef void (*QWebEnginePage_runJavaScript_t)(QWebEnginePage*, const QString&, uint, const uintptr_t&); -#endif - typedef void (*QWebEnginePage_runJavaScript_compat_t)(QWebEnginePage*, const QString&); - - QWebEnginePage_runJavaScript_t QWebEnginePage_runJavaScript; - QWebEnginePage_runJavaScript_compat_t QWebEnginePage_runJavaScript_compat; - - if (qtVersion == 5) { - QWebEnginePage_runJavaScript = nullptr; - QWebEnginePage_runJavaScript_compat = reinterpret_cast(dlsym( - nullptr, "_ZN14QWebEnginePage13runJavaScriptERK7QString")); - DISTRHO_SAFE_ASSERT_RETURN(QWebEnginePage_runJavaScript_compat != nullptr, false); - } else { - QWebEnginePage_runJavaScript_compat = nullptr; - QWebEnginePage_runJavaScript = reinterpret_cast(dlsym( - nullptr, "_ZN14QWebEnginePage13runJavaScriptERK7QStringjRKSt8functionIFvRK8QVariantEE")); - DISTRHO_SAFE_ASSERT_RETURN(QWebEnginePage_runJavaScript != nullptr, false); - } - - typedef void (*QApplication__init_t)(QApplication*, int&, char**, int); - typedef void (*QApplication_exec_t)(); - typedef void (*QApplication_postEvent_t)(QObject*, QEvent*, int); - typedef void (*QApplication_quit_t)(); - typedef void (*QApplication_setAttribute_t)(int, bool); - typedef void (*QEvent__init_t)(QEvent*, int /* QEvent::Type */); - typedef QJsonValue (*QJsonObject_value_t)(const QJsonObject*, const QString &); - typedef QString (*QJsonValue_toString_t)(const QJsonValue*); - typedef void (*QUrl__init_t)(QUrl*, const QString&, int /* QUrl::ParsingMode */); - typedef void (*QWebChannel__init_t)(QWebChannel*, QObject*); - typedef void (*QWebChannel_registerObject_t)(QWebChannel*, const QString&, QObject*); - typedef void (*QWebEnginePage__init_t)(QWebEnginePage*, QWebEngineProfile*, QObject*); - typedef void (*QWebEnginePage_setBackgroundColor_t)(QWebEnginePage*, const QColor&); - typedef QWebChannel* (*QWebEnginePage_webChannel_t)(QWebEnginePage*); - typedef QWebEngineProfile* (*QWebEngineProfile_defaultProfile_t)(); - typedef void (*QWebEngineProfile_installUrlSchemeHandler_t)(QWebEngineProfile*, const QByteArray&, QWebEngineUrlSchemeHandler*); - typedef QWebEngineSettings* (*QWebEngineProfile_settings_t)(QWebEngineProfile*); - typedef QWebEngineScriptCollection* (*QWebEngineProfile_scripts_t)(QWebEngineProfile*); - typedef void (*QWebEngineScript__init_t)(QWebEngineScript*); - typedef void (*QWebEngineScript_setInjectionPoint_t)(QWebEngineScript*, int /* QWebEngineScript::InjectionPoint */); - typedef void (*QWebEngineScript_setRunsOnSubFrames_t)(QWebEngineScript*, bool); - typedef void (*QWebEngineScript_setSourceCode_t)(QWebEngineScript*, const QString &); - typedef void (*QWebEngineScript_setWorldId_t)(QWebEngineScript*, uint32_t); - typedef void (*QWebEngineScriptCollection_insert_t)(QWebEngineScriptCollection*, QWebEngineScript&); - typedef void (*QWebEngineSettings_setAttribute_t)(QWebEngineSettings*, int /* QWebEngineSettings::WebAttribute */, bool); - // typedef void (*QWebEngineUrlRequestJob_reply_t)(QWebEngineUrlRequestJob*, const QByteArray&, QIODevice*); - typedef void (*QWebEngineUrlScheme__init_t)(QWebEngineUrlScheme*, const QByteArray&); - typedef void (*QWebEngineUrlScheme_registerScheme_t)(QWebEngineUrlScheme&); - typedef void (*QWebEngineUrlScheme_setFlags_t)(QWebEngineUrlScheme*, int /* QWebEngineUrlScheme::Flags */); - typedef void (*QWebEngineUrlScheme_setSyntax_t)(QWebEngineUrlScheme*, int /* QWebEngineUrlScheme::Syntax */); - typedef void (*QWebEngineUrlSchemeHandler__init_t)(QObject*, QObject*); - typedef void (*QWebEngineView__init_t)(QWebEngineView*, QObject*); - typedef void (*QWebEngineView_move_t)(QWebEngineView*, const QPoint&); - typedef void (*QWebEngineView_resize_t)(QWebEngineView*, const QSize&); - typedef void (*QWebEngineView_setPage_t)(QWebEngineView*, QWebEnginePage*); - typedef void (*QWebEngineView_setUrl_t)(QWebEngineView*, const QUrl&); - typedef void (*QWebEngineView_show_t)(QWebEngineView*); - typedef ulonglong (*QWebEngineView_winId_t)(QWebEngineView*); - typedef QWindow* (*QWebEngineView_windowHandle_t)(QWebEngineView*); - typedef QWindow* (*QWindow_fromWinId_t)(ulonglong); - typedef void (*QWindow_setParent_t)(QWindow*, void*); - - CPPSYM(QApplication__init_t, QApplication__init, _ZN12QApplicationC1ERiPPci) - CPPSYM(QApplication_exec_t, QApplication_exec, _ZN15QGuiApplication4execEv) - CPPSYM(QApplication_postEvent_t, QApplication_postEvent, _ZN16QCoreApplication9postEventEP7QObjectP6QEventi) - CPPSYM(QApplication_quit_t, QApplication_quit, _ZN16QCoreApplication4quitEv) - CPPSYM(QApplication_setAttribute_t, QApplication_setAttribute, _ZN16QCoreApplication12setAttributeEN2Qt20ApplicationAttributeEb) - CPPSYM(QEvent__init_t, QEvent__init, _ZN6QEventC1ENS_4TypeE) - CPPSYM(QJsonObject_value_t, QJsonObject_value, _ZNK11QJsonObject5valueERK7QString) - CPPSYM(QJsonValue_toString_t, QJsonValue_toString, _ZNK10QJsonValue8toStringEv) - CPPSYM(QUrl__init_t, QUrl__init, _ZN4QUrlC1ERK7QStringNS_11ParsingModeE) - CPPSYM(QWebChannel__init_t, QWebChannel__init, _ZN11QWebChannelC1EP7QObject) - CPPSYM(QWebChannel_registerObject_t, QWebChannel_registerObject, _ZN11QWebChannel14registerObjectERK7QStringP7QObject) - CPPSYM(QWebEnginePage__init_t, QWebEnginePage__init, _ZN14QWebEnginePageC1EP17QWebEngineProfileP7QObject) - CPPSYM(QWebEnginePage_setBackgroundColor_t, QWebEnginePage_setBackgroundColor, _ZN14QWebEnginePage18setBackgroundColorERK6QColor) - CPPSYM(QWebEnginePage_webChannel_t, QWebEnginePage_webChannel, _ZNK14QWebEnginePage10webChannelEv) - CPPSYM(QWebEngineProfile_defaultProfile_t, QWebEngineProfile_defaultProfile, _ZN17QWebEngineProfile14defaultProfileEv) - CPPSYM(QWebEngineProfile_installUrlSchemeHandler_t, QWebEngineProfile_installUrlSchemeHandler, _ZN17QWebEngineProfile23installUrlSchemeHandlerERK10QByteArrayP26QWebEngineUrlSchemeHandler) - CPPSYM(QWebEngineProfile_settings_t, QWebEngineProfile_settings, _ZNK17QWebEngineProfile8settingsEv) - CPPSYM(QWebEngineProfile_scripts_t, QWebEngineProfile_scripts, _ZNK17QWebEngineProfile7scriptsEv) - CPPSYM(QWebEngineScript__init_t, QWebEngineScript__init, _ZN16QWebEngineScriptC1Ev) - CPPSYM(QWebEngineScript_setInjectionPoint_t, QWebEngineScript_setInjectionPoint, _ZN16QWebEngineScript17setInjectionPointENS_14InjectionPointE) - CPPSYM(QWebEngineScript_setRunsOnSubFrames_t, QWebEngineScript_setRunsOnSubFrames, _ZN16QWebEngineScript18setRunsOnSubFramesEb) - CPPSYM(QWebEngineScript_setSourceCode_t, QWebEngineScript_setSourceCode, _ZN16QWebEngineScript13setSourceCodeERK7QString) - CPPSYM(QWebEngineScript_setWorldId_t, QWebEngineScript_setWorldId, _ZN16QWebEngineScript10setWorldIdEj) - CPPSYM(QWebEngineScriptCollection_insert_t, QWebEngineScriptCollection_insert, _ZN26QWebEngineScriptCollection6insertERK16QWebEngineScript) - CPPSYM(QWebEngineSettings_setAttribute_t, QWebEngineSettings_setAttribute, _ZN18QWebEngineSettings12setAttributeENS_12WebAttributeEb) - // CPPSYM(QWebEngineUrlRequestJob_reply_t, QWebEngineUrlRequestJob_reply, _ZN23QWebEngineUrlRequestJob5replyERK10QByteArrayP9QIODevice) - CPPSYM(QWebEngineUrlScheme__init_t, QWebEngineUrlScheme__init, _ZN19QWebEngineUrlSchemeC1ERK10QByteArray) - CPPSYM(QWebEngineUrlScheme_registerScheme_t, QWebEngineUrlScheme_registerScheme, _ZN19QWebEngineUrlScheme14registerSchemeERKS_) - CPPSYM(QWebEngineUrlScheme_setFlags_t, QWebEngineUrlScheme_setFlags, _ZN19QWebEngineUrlScheme8setFlagsE6QFlagsINS_4FlagEE) - CPPSYM(QWebEngineUrlScheme_setSyntax_t, QWebEngineUrlScheme_setSyntax, _ZN19QWebEngineUrlScheme9setSyntaxENS_6SyntaxE) - CPPSYM(QWebEngineUrlSchemeHandler__init_t, QWebEngineUrlSchemeHandler__init, _ZN26QWebEngineUrlSchemeHandlerC1EP7QObject) - CPPSYM(QWebEngineView__init_t, QWebEngineView__init, _ZN14QWebEngineViewC1EP7QWidget) - CPPSYM(QWebEngineView_move_t, QWebEngineView_move, _ZN7QWidget4moveERK6QPoint) - CPPSYM(QWebEngineView_resize_t, QWebEngineView_resize, _ZN7QWidget6resizeERK5QSize) - CPPSYM(QWebEngineView_setPage_t, QWebEngineView_setPage, _ZN14QWebEngineView7setPageEP14QWebEnginePage) - CPPSYM(QWebEngineView_setUrl_t, QWebEngineView_setUrl, _ZN14QWebEngineView6setUrlERK4QUrl) - CPPSYM(QWebEngineView_show_t, QWebEngineView_show, _ZN7QWidget4showEv) - CPPSYM(QWebEngineView_winId_t, QWebEngineView_winId, _ZNK7QWidget5winIdEv) - CPPSYM(QWebEngineView_windowHandle_t, QWebEngineView_windowHandle, _ZNK7QWidget12windowHandleEv) - CPPSYM(QWindow_fromWinId_t, QWindow_fromWinId, _ZN7QWindow9fromWinIdEy) - CPPSYM(QWindow_setParent_t, QWindow_setParent, _ZN7QWindow9setParentEPS_) - - unsetenv("QT_FONT_DPI"); - unsetenv("QT_SCREEN_SCALE_FACTORS"); - unsetenv("QT_USE_PHYSICAL_DPI"); - setenv("QT_QPA_PLATFORM", "xcb", 1); - - if (qtVersion == 5) - { - setenv("QT_AUTO_SCREEN_SCALE_FACTOR", "0", 1); - } - else - { - setenv("QT_ENABLE_HIGHDPI_SCALING", "0", 1); - } - - char scale[8] = {}; - std::snprintf(scale, 7, "%.2f", scaleFactor); - setenv("QT_SCALE_FACTOR", scale, 1); - - QByteArray urlSchemeName; - QByteArray__init(&urlSchemeName, "dpf", 3); - - constexpr const int urlSchemeFlags = 0 - | 0x1 /* QWebEngineUrlScheme::SecureScheme */ - | 0x2 /* QWebEngineUrlScheme::LocalScheme */ - | 0x4 /* QWebEngineUrlScheme::LocalAccessAllowed */ - | 0x8 /* QWebEngineUrlScheme::ServiceWorkersAllowed */ - | 0x40 /* QWebEngineUrlScheme::ContentSecurityPolicyIgnored */ - ; - QWebEngineUrlScheme urlScheme; - QWebEngineUrlScheme__init(&urlScheme, urlSchemeName); - QWebEngineUrlScheme_setSyntax(&urlScheme, 3 /* QWebEngineUrlScheme::Syntax::Path */); - QWebEngineUrlScheme_setFlags(&urlScheme, urlSchemeFlags); - QWebEngineUrlScheme_registerScheme(urlScheme); - - if (qtVersion == 5) - { - QApplication_setAttribute(10 /* Qt::AA_X11InitThreads */, true); - QApplication_setAttribute(13 /* Qt::AA_UseHighDpiPixmaps */, true); - QApplication_setAttribute(20 /* Qt::AA_EnableHighDpiScaling */, true); - } - - static int argc = 1; - static char argv0[] = "dpf-webview"; - static char* argv[] = { argv0, nullptr }; - - QApplication app; - QApplication__init(&app, argc, argv, 0); - - EventFilterQObject eventFilter(shmptr); - - QString qstrchannel, qstrmcode, qstrurl; - { - static constexpr const char* channel_src = "external"; - const size_t channel_len = std::strlen(channel_src); - ushort* const channel_qchar = new ushort[channel_len + 1]; - - for (size_t i = 0; i < channel_len; ++i) - channel_qchar[i] = channel_src[i]; - - channel_qchar[channel_len] = 0; - - QString__init(&qstrchannel, reinterpret_cast(channel_qchar), channel_len); - - delete[] channel_qchar; - } - { - static constexpr const char* mcode_src = "\ - function postMessage(m){qt.webChannelTransport.send(JSON.stringify({\ - \"type\":6, \ - \"id\": \"WebSender\",\ - \"__QObject*__\": true,\ - \"object\": \"external\", \ - \"method\": \"sendMessage\",\ - \"args\":[{\"m\":m}], \ - }));}"; - const size_t mcode_len = std::strlen(mcode_src); - ushort* const mcode_qchar = new ushort[mcode_len + 1]; - - for (size_t i = 0; i < mcode_len; ++i) - mcode_qchar[i] = mcode_src[i]; - - mcode_qchar[mcode_len] = 0; - - QString__init(&qstrmcode, reinterpret_cast(mcode_qchar), mcode_len); - - delete[] mcode_qchar; - } - { - const size_t url_len = std::strlen(url); - ushort* const url_qchar = new ushort[url_len + 1]; - - for (size_t i = 0; i < url_len; ++i) - url_qchar[i] = url[i]; - - url_qchar[url_len] = 0; - - QString__init(&qstrurl, reinterpret_cast(url_qchar), url_len); - - delete[] url_qchar; - } - - QUrl qurl; - QUrl__init(&qurl, qstrurl, 1 /* QUrl::StrictMode */); - - QWebEngineProfile* const profile = QWebEngineProfile_defaultProfile(); - QWebEngineScriptCollection* const scripts = QWebEngineProfile_scripts(profile); - QWebEngineSettings* const settings = QWebEngineProfile_settings(profile); - - { - QWebEngineScript mscript; - QWebEngineScript__init(&mscript); - QWebEngineScript_setInjectionPoint(&mscript, 2 /* QWebEngineScript::DocumentCreation */); - QWebEngineScript_setRunsOnSubFrames(&mscript, true); - QWebEngineScript_setSourceCode(&mscript, qstrmcode); - QWebEngineScript_setWorldId(&mscript, 0 /* QWebEngineScript::MainWorld */); - QWebEngineScriptCollection_insert(scripts, mscript); - } - - if (initialJS != nullptr) - { - QString qstrcode; - { - const size_t code_len = std::strlen(initialJS); - ushort* const code_qchar = new ushort[code_len + 1]; - - for (size_t i = 0; i < code_len; ++i) - code_qchar[i] = initialJS[i]; - - code_qchar[code_len] = 0; - - QString__init(&qstrcode, reinterpret_cast(code_qchar), code_len); - } - - QWebEngineScript script; - QWebEngineScript__init(&script); - QWebEngineScript_setInjectionPoint(&script, 2 /* QWebEngineScript::DocumentCreation */); - QWebEngineScript_setRunsOnSubFrames(&script, true); - QWebEngineScript_setSourceCode(&script, qstrcode); - QWebEngineScript_setWorldId(&script, 0 /* QWebEngineScript::MainWorld */); - QWebEngineScriptCollection_insert(scripts, script); - } - - QWebEngineSettings_setAttribute(settings, 3 /* QWebEngineSettings::JavascriptCanAccessClipboard */, true); - QWebEngineSettings_setAttribute(settings, 6 /* QWebEngineSettings::LocalContentCanAccessRemoteUrls */, true); - QWebEngineSettings_setAttribute(settings, 9 /* QWebEngineSettings::LocalContentCanAccessFileUrls */, true); - QWebEngineSettings_setAttribute(settings, 28 /* QWebEngineSettings::JavascriptCanPaste */, true); - - QWebEngineView webview; - QWebEngineView__init(&webview, nullptr); - - QWebEnginePage page; - QWebEnginePage__init(&page, profile, reinterpret_cast(&webview)); - // QWebEnginePage_setBackgroundColor(&page, QColor{0,0,0,0}); - - QWebChannel channel; - QWebChannel__init(&channel, reinterpret_cast(&webview)); - QWebChannel_registerObject(&channel, qstrchannel, &eventFilter); - QWebEnginePage_setWebChannel(&page, &channel, 0); - - QWebEngineView_move(&webview, QPoint(x, y)); - QWebEngineView_resize(&webview, QSize(static_cast(width / scaleFactor), static_cast(height / scaleFactor))); - QWebEngineView_winId(&webview); - QWindow_setParent(QWebEngineView_windowHandle(&webview), QWindow_fromWinId(winId)); - - QWebEngineView_setPage(&webview, &page); - QWebEngineView_setUrl(&webview, qurl); - - // FIXME Qt6 seems to need some forcing.. - if (qtVersion >= 6) - { - XReparentWindow(display, QWebEngineView_winId(&webview), winId, x, y); - XFlush(display); - } - - QWebEngineView_show(&webview); - - struct QtWebFramework : WebFramework { - const int _qtVersion; - WebViewRingBuffer* const _shmptr; - const QUrl& _qurl; - QWebEnginePage& _page; - QWebEngineView& _webview; - EventFilterQObject& _eventFilter; - const QString__init_t _QString__init; - const QWebEnginePage_runJavaScript_compat_t _QWebEnginePage_runJavaScript_compat; - const QWebEnginePage_runJavaScript_t _QWebEnginePage_runJavaScript; - const QWebEngineView_setUrl_t _QWebEngineView_setUrl; - const QApplication_quit_t _QApplication_quit; - const QEvent__init_t _QEvent__init; - const QApplication_postEvent_t _QApplication_postEvent; - - QtWebFramework(const int qtVersion, - WebViewRingBuffer* const shmptr, - const QUrl& qurl, - QWebEnginePage& page, - QWebEngineView& webview, - EventFilterQObject& eventFilter, - const QString__init_t QString__init, - const QWebEnginePage_runJavaScript_compat_t QWebEnginePage_runJavaScript_compat, - const QWebEnginePage_runJavaScript_t QWebEnginePage_runJavaScript, - const QWebEngineView_setUrl_t QWebEngineView_setUrl, - const QApplication_quit_t QApplication_quit, - const QEvent__init_t QEvent__init, - const QApplication_postEvent_t QApplication_postEvent) - : _qtVersion(qtVersion), - _shmptr(shmptr), - _qurl(qurl), - _page(page), - _webview(webview), - _eventFilter(eventFilter), - _QString__init(QString__init), - _QWebEnginePage_runJavaScript_compat(QWebEnginePage_runJavaScript_compat), - _QWebEnginePage_runJavaScript(QWebEnginePage_runJavaScript), - _QWebEngineView_setUrl(QWebEngineView_setUrl), - _QApplication_quit(QApplication_quit), - _QEvent__init(QEvent__init), - _QApplication_postEvent(QApplication_postEvent) {} - - void evaluate(const char* const js) override - { - QString qstrjs; - { - const size_t js_len = std::strlen(js); - ushort* const js_qchar = new ushort[js_len + 1]; - - for (size_t i = 0; i < js_len; ++i) - js_qchar[i] = js[i]; - - js_qchar[js_len] = 0; - - _QString__init(&qstrjs, reinterpret_cast(js_qchar), js_len); - } - - if (_qtVersion == 5) - _QWebEnginePage_runJavaScript_compat(&_page, qstrjs); - else - _QWebEnginePage_runJavaScript(&_page, qstrjs, 0, - #ifdef DISTRHO_PROPER_CPP11_SUPPORT - {} - #else - 0 - #endif - ); - } - - void reload() override - { - _QWebEngineView_setUrl(&_webview, _qurl); - } - - void terminate() override - { - if (running) - { - running = false; - webview_wake(&_shmptr->client.sem); - _QApplication_quit(); - } - } - - void wake(WebViewRingBuffer*) override - { - // NOTE event pointer is deleted by Qt - QEvent* const qevent = new QEvent; - _QEvent__init(qevent, 1000 /* QEvent::User */); - _QApplication_postEvent(&_eventFilter, qevent, 1 /* Qt::HighEventPriority */); - } - }; - - QtWebFramework webFrameworkObj(qtVersion, - shmptr, - qurl, - page, - webview, - eventFilter, - QString__init, - QWebEnginePage_runJavaScript_compat, - QWebEnginePage_runJavaScript, - QWebEngineView_setUrl, - QApplication_quit, - QEvent__init, - QApplication_postEvent); - - webFramework = &webFrameworkObj; - - // notify server we started ok - webview_wake(&shmptr->server.sem); - - d_stdout("WebView Qt%d main loop started", qtVersion); - - QApplication_exec(); - - d_stdout("WebView Qt%d main loop quit", qtVersion); - - dlclose(lib); - return true; -} - -// ----------------------------------------------------------------------------------------------------------- -// startup via ld-linux - -static void signalHandler(const int sig) -{ - switch (sig) - { - case SIGTERM: - webFramework->terminate(); - break; - } -} - -static void* threadHandler(void* const ptr) -{ - WebViewRingBuffer* const shmptr = static_cast(ptr); - - while (running && shmptr->valid) - { - if (webview_timedwait(&shmptr->client.sem) && running) - webFramework->wake(shmptr); - } - - return nullptr; -} - -int dpf_webview_start(const int argc, char* argv[]) -{ - if (argc != 3) - { - d_stderr("WebView entry point, nothing to see here! ;)"); - return 1; - } - - d_stdout("starting... %d '%s' '%s'", argc, argv[1], argv[2]); - - uselocale(newlocale(LC_NUMERIC_MASK, "C", nullptr)); - - Display* const display = XOpenDisplay(nullptr); - DISTRHO_SAFE_ASSERT_RETURN(display != nullptr, 1); - - const char* const shmname = argv[2]; - const int shmfd = shm_open(shmname, O_RDWR, 0); - if (shmfd < 0) - { - d_stderr("shm_open failed: %s", std::strerror(errno)); - return 1; - } - - WebViewRingBuffer* const shmptr = static_cast(mmap(nullptr, - sizeof(WebViewRingBuffer), - PROT_READ|PROT_WRITE, - MAP_SHARED, - shmfd, 0)); - if (shmptr == nullptr || shmptr == nullptr) - { - d_stderr("mmap failed: %s", std::strerror(errno)); - close(shmfd); - return 1; - } - - RingBufferControl rbctrl; - rbctrl.setRingBuffer(&shmptr->client, false); - - // fetch initial data - bool hasInitialData = false; - Window winId = 0; - uint width = 0, height = 0; - double scaleFactor = 0; - int x = 0, y = 0; - char* url = nullptr; - char* initJS = nullptr; - - while (shmptr->valid && webview_timedwait(&shmptr->client.sem)) - { - if (rbctrl.isDataAvailableForReading()) - { - DISTRHO_SAFE_ASSERT_RETURN(rbctrl.readUInt() == kWebViewMessageInitData, 1); - - hasInitialData = running = true; - winId = rbctrl.readULong(); - width = rbctrl.readUInt(); - height = rbctrl.readUInt(); - scaleFactor = rbctrl.readDouble(); - x = rbctrl.readInt(); - y = rbctrl.readInt(); - - const uint urllen = rbctrl.readUInt(); - url = static_cast(std::malloc(urllen)); - rbctrl.readCustomData(url, urllen); - - if (const uint initjslen = rbctrl.readUInt()) - { - initJS = static_cast(std::malloc(initjslen)); - rbctrl.readCustomData(initJS, initjslen); - } - } - } - - pthread_t thread; - if (hasInitialData && pthread_create(&thread, nullptr, threadHandler, shmptr) == 0) - { - d_stdout("WebView IPC in place, starting engine..."); - - struct sigaction sig = {}; - sig.sa_handler = signalHandler; - sig.sa_flags = SA_RESTART; - sigemptyset(&sig.sa_mask); - sigaction(SIGTERM, &sig, nullptr); - - if (! qtwebengine(5, display, winId, x, y, width, height, scaleFactor, url, initJS, shmptr) && - ! qtwebengine(6, display, winId, x, y, width, height, scaleFactor, url, initJS, shmptr) && - ! gtk3(display, winId, x, y, width, height, scaleFactor, url, initJS, shmptr)) - { - d_stderr("Failed to find usable WebView platform"); - } - - shmptr->valid = running = false; - pthread_join(thread, nullptr); - } - else - { - d_stderr("Failed to setup WebView IPC"); - } - - std::free(initJS); - munmap(shmptr, sizeof(WebViewRingBuffer)); - close(shmfd); - - XCloseDisplay(display); - - return 0; -} - -// -------------------------------------------------------------------------------------------------------------------- - -#endif // WEB_VIEW_USING_X11_IPC - -#ifdef WEB_VIEW_DGL_NAMESPACE -END_NAMESPACE_DGL -#else -END_NAMESPACE_DISTRHO -#endif - -#undef MACRO_NAME -#undef MACRO_NAME2 - -#undef WEB_VIEW_DISTRHO_NAMESPACE -#undef WEB_VIEW_DGL_NAMESPACE -#undef WEB_VIEW_NAMESPACE diff --git a/dpf/distrho/extra/WebViewImpl.hpp b/dpf/distrho/extra/WebViewImpl.hpp deleted file mode 100644 index 40a46dd..0000000 --- a/dpf/distrho/extra/WebViewImpl.hpp +++ /dev/null @@ -1,136 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2025 Filipe Coelho - * - * Permission to use, copy, modify, and/or distribute this software for any purpose with - * or without fee is hereby granted, provided that the above copyright notice and this - * permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#if !defined(DISTRHO_WEB_VIEW_HPP_INCLUDED) && !defined(DGL_WEB_VIEW_HPP_INCLUDED) -# error bad include -#endif - -#if !defined(DGL_USE_WEB_VIEW) && defined(DISTRHO_UI_WEB_VIEW) && DISTRHO_UI_WEB_VIEW == 0 -# error To use WebViews in DPF plugins please set DISTRHO_UI_WEB_VIEW to 1 -#endif - -// -------------------------------------------------------------------------------------------------------------------- -// Web View stuff - -struct WebViewData; -typedef WebViewData* WebViewHandle; -typedef void (*WebViewMessageCallback)(void* arg, char* msg); - -// -------------------------------------------------------------------------------------------------------------------- - -/** - Web view options, for customizing web view details. -*/ -struct WebViewOptions { - /** - Position offset, for cases of mixing regular widgets with web views. - */ - struct PositionOffset { - /** Horizontal offset, with scale factor pre-applied */ - int x; - - /** Vertical offset, with scale factor pre-applied */ - int y; - - /** Constructor for default values */ - PositionOffset() : x(0), y(0) {} - } offset; - - /** - Set some JavaScript to evalute on every new page load. - */ - const char* initialJS; - - /** - Message callback triggered from JavaScript code inside the WebView. - */ - WebViewMessageCallback callback; - void* callbackPtr; - - /** Constructor for default values */ - WebViewOptions() - : offset(), - initialJS(nullptr), - callback(nullptr), - callbackPtr(nullptr) {} - - /** Constructor providing a callback */ - WebViewOptions(const WebViewMessageCallback cb, void* const ptr) - : offset(), - initialJS(nullptr), - callback(cb), - callbackPtr(ptr) {} -}; - -// -------------------------------------------------------------------------------------------------------------------- - -/** - Create a new web view. - - The web view will be added on top of an existing platform-specific view/window. - This means it will draw on top of whatever is below it, - something to take into consideration if mixing regular widgets with web views. - - Provided metrics must have scale factor pre-applied. - - @p url: The URL to open, assumed to be in encoded form (e.g spaces converted to %20) - @p windowId: The native window id to attach this view to (X11 Window, HWND or NSView*) - @p scaleFactor: Scale factor in use - @p options: Extra options, optional -*/ -WebViewHandle webViewCreate(const char* url, - uintptr_t windowId, - uint initialWidth, - uint initialHeight, - double scaleFactor, - const WebViewOptions& options = WebViewOptions()); - -/** - Destroy the web view, handle must not be used afterwards. -*/ -void webViewDestroy(WebViewHandle webview); - -/** - Idle the web view, to be called on regular intervals. - Can cause callbacks to trigger. -*/ -void webViewIdle(WebViewHandle webview); - -/** - Evaluate/run JavaScript on the web view. -*/ -void webViewEvaluateJS(WebViewHandle webview, const char* js); - -/** - Reload the web view current page. -*/ -void webViewReload(WebViewHandle webview); - -/** - Resize the web view. -*/ -void webViewResize(WebViewHandle webview, uint width, uint height, double scaleFactor); - -// -------------------------------------------------------------------------------------------------------------------- - -/** - Helper class for usage in std::shared_ptr and std::unique_ptr. -*/ -struct WebViewDestroy { - void operator()(WebViewHandle handle) { webViewDestroy(handle); } -}; - -// -------------------------------------------------------------------------------------------------------------------- diff --git a/dpf/distrho/extra/WebViewWin32.hpp b/dpf/distrho/extra/WebViewWin32.hpp deleted file mode 100644 index 03049cc..0000000 --- a/dpf/distrho/extra/WebViewWin32.hpp +++ /dev/null @@ -1,122 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2025 Filipe Coelho - * - * Permission to use, copy, modify, and/or distribute this software for any purpose with - * or without fee is hereby granted, provided that the above copyright notice and this - * permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#if !defined(DISTRHO_WEB_VIEW_HPP_INCLUDED) && !defined(DGL_WEB_VIEW_HPP_INCLUDED) -# define DISTRHO_WEB_VIEW_INCLUDE_IMPLEMENTATION -# include "WebView.hpp" -#endif - -// -------------------------------------------------------------------------------------------------------------------- -// Web View stuff - -START_NAMESPACE_DISTRHO - -class WebView; - -END_NAMESPACE_DISTRHO - -#ifdef WEB_VIEW_DGL_NAMESPACE -START_NAMESPACE_DGL -using DISTRHO_NAMESPACE::WebView; -#else -START_NAMESPACE_DISTRHO -#endif - -WebView* webview_choc_create(const WEB_VIEW_NAMESPACE::WebViewOptions& opts); -void webview_choc_destroy(WebView*); -void* webview_choc_handle(WebView*); -void webview_choc_eval(WebView*, const char* js); -void webview_choc_navigate(WebView*, const char* url); - -#ifdef WEB_VIEW_DGL_NAMESPACE -END_NAMESPACE_DGL -#else -END_NAMESPACE_DISTRHO -#endif - -// -------------------------------------------------------------------------------------------------------------------- - -#ifdef DISTRHO_WEB_VIEW_INCLUDE_IMPLEMENTATION - -# define WC_ERR_INVALID_CHARS 0 -# include "choc/choc_WebView.h" - -#ifdef WEB_VIEW_DGL_NAMESPACE -START_NAMESPACE_DGL -#else -START_NAMESPACE_DISTRHO -#endif - -WebView* webview_choc_create(const WEB_VIEW_NAMESPACE::WebViewOptions& opts) -{ - WebView::Options wopts; - wopts.acceptsFirstMouseClick = true; - wopts.enableDebugMode = true; - - std::unique_ptr webview = std::make_unique(wopts); - DISTRHO_SAFE_ASSERT_RETURN(webview->loadedOK(), nullptr); - - if (const WEB_VIEW_NAMESPACE::WebViewMessageCallback callback = opts.callback) - { - webview->addInitScript("function postMessage(m){window.chrome.webview.postMessage(m);}"); - - void* const callbackPtr = opts.callbackPtr; - webview->bind([callback, callbackPtr](const std::string& value) { - char* const data = strdup(value.data()); - callback(callbackPtr, data); - std::free(data); - }); - } - else - { - webview->addInitScript("function postMessage(m){}"); - } - - if (opts.initialJS != nullptr) - webview->addInitScript(opts.initialJS); - - return webview.release(); -} - -void webview_choc_destroy(WebView* const webview) -{ - delete webview; -} - -void* webview_choc_handle(WebView* const webview) -{ - return webview->getViewHandle(); -} - -void webview_choc_eval(WebView* const webview, const char* const js) -{ - webview->evaluateJavascript(js); -} - -void webview_choc_navigate(WebView* const webview, const char* const url) -{ - webview->navigate(url); -} - -#ifdef WEB_VIEW_DGL_NAMESPACE -END_NAMESPACE_DGL -#else -END_NAMESPACE_DISTRHO -#endif - -#endif // DISTRHO_WEB_VIEW_INCLUDE_IMPLEMENTATION - -// -------------------------------------------------------------------------------------------------------------------- diff --git a/dpf/distrho/extra/choc/LICENSE.md b/dpf/distrho/extra/choc/LICENSE.md deleted file mode 100644 index 243935b..0000000 --- a/dpf/distrho/extra/choc/LICENSE.md +++ /dev/null @@ -1,15 +0,0 @@ -## CHOC: licensing - -I'd like anyone to feel able to use this library code without worrying about the legal implications, so it's released under the permissive ISC license: - ----- - -**Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.** - -**THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.** - -https://en.wikipedia.org/wiki/ISC_license - ----- - -Note that if you use the `choc::ui::WebView` class on Windows, it embeds some Microsoft redistributable code which has its own (permissive) license that you should be aware of. See inside the file `choc_WebView.h` for more details. diff --git a/dpf/distrho/extra/choc/README.md b/dpf/distrho/extra/choc/README.md deleted file mode 100644 index 401da6a..0000000 --- a/dpf/distrho/extra/choc/README.md +++ /dev/null @@ -1,22 +0,0 @@ -Taken from https://github.com/Tracktion/choc - -``` -commit 2512542b2d65f3e92df7f2f1f7eeb712fa41a0de (HEAD -> main, origin/main, origin/HEAD) -Author: Cesare Ferrari -Date: Sun Apr 28 12:53:17 2024 +0100 - - Disable additional gcc warnin -``` - -With the big [choc.patch](./choc.patch) patch applied to top for: - -- remove everything not related to windows -- remove everything unused by DPF -- convert webview JS callbacks to pass raw strings instead of json -- remove even more stuff (json no longer needed) -- convert choc asserts into distrho ones -- put everything inside distrho namespace - -And then backported: - -- https://github.com/Tracktion/choc/commit/792e4bd9bedf38b9a28f12be0535c90649d5616b diff --git a/dpf/distrho/extra/choc/choc.patch b/dpf/distrho/extra/choc/choc.patch deleted file mode 100644 index 3b3db04..0000000 --- a/dpf/distrho/extra/choc/choc.patch +++ /dev/null @@ -1,2803 +0,0 @@ -diff --git a/choc_DesktopWindow.h b/choc_DesktopWindow.h -index b948042..55e7305 100644 ---- a/choc_DesktopWindow.h -+++ b/choc_DesktopWindow.h -@@ -19,100 +19,7 @@ - #ifndef CHOC_DESKTOPWINDOW_HEADER_INCLUDED - #define CHOC_DESKTOPWINDOW_HEADER_INCLUDED - --#include "../platform/choc_Platform.h" -- -- --//============================================================================== --namespace choc::ui --{ -- --/// Represents the position and size of a DesktopWindow or other UI elements. --struct Bounds --{ -- int x = 0, y = 0, width = 0, height = 0; --}; -- --/** -- A very basic desktop window class. -- -- The main use-case for this is as a simple way to host other UI elements -- such as the choc::ui::WebView. -- -- Because this is a GUI, it needs a message loop to be running. If you're using -- it inside an app which already runs a message loop, it should just work, -- or you can use choc::messageloop::run() and choc::messageloop::stop() for an easy -- but basic loop. -- -- Note that on Linux this uses GTK, so to build it you'll need to: -- 1. Install the libgtk-3-dev package. -- 2. Link the gtk+3.0 library in your build. -- You might want to have a look inside choc/tests/CMakeLists.txt for -- an example of how to add this packages to your build without too -- much fuss. -- -- For an example of how to use this class, see `choc/tests/main.cpp` where -- there's a simple demo. --*/ --struct DesktopWindow --{ -- DesktopWindow (Bounds); -- ~DesktopWindow(); -- -- /// Sets the title of the window that the browser is inside -- void setWindowTitle (const std::string& newTitle); -- -- /// Gives the window a child/content view to display. -- /// The pointer being passed in will be a platform-specific native handle, -- /// so a HWND on Windows, an NSView* on OSX, etc. -- void setContent (void* nativeView); -- -- /// Shows or hides the window. It's visible by default when created. -- void setVisible (bool visible); -- -- /// Changes the window's position -- void setBounds (Bounds); -- -- /// Enables/disables user resizing of the window -- void setResizable (bool); -- -- /// Enables/disables the window's close button (if applicable). -- void setClosable (bool); -- -- /// Gives the window a given size and positions it in the middle of the -- /// default monitor -- void centreWithSize (int width, int height); -- -- /// Sets a minimum size below which the user can't shrink the window -- void setMinimumSize (int minWidth, int minHeight); -- /// Sets a maximum size above which the user can't grow the window -- void setMaximumSize (int maxWidth, int maxHeight); -- -- /// Tries to bring this window to the front of the Z-order. -- void toFront(); -- -- /// Returns the native OS handle, which may be a HWND on Windows, an -- /// NSWindow* on OSX or a GtkWidget* on linux. -- void* getWindowHandle() const; -- -- /// An optional callback that will be called when the parent window is resized -- std::function windowResized; -- /// An optional callback that will be called when the parent window is closed -- std::function windowClosed; -- --private: -- struct Pimpl; -- std::unique_ptr pimpl; --}; -- --//============================================================================== --/// This Windows-only function turns on high-DPI awareness for the current --/// process. On other OSes where no equivalent call is needed, this function is --/// just a stub. --void setWindowsDPIAwareness(); -- -- --} // namespace choc::ui -- -+#include "choc_Platform.h" - - //============================================================================== - // _ _ _ _ -@@ -125,326 +32,6 @@ void setWindowsDPIAwareness(); - // - //============================================================================== - --#if CHOC_LINUX -- --struct choc::ui::DesktopWindow::Pimpl --{ -- Pimpl (DesktopWindow& w, Bounds bounds) : owner (w) -- { -- if (! gtk_init_check (nullptr, nullptr)) -- return; -- -- window = gtk_window_new (GTK_WINDOW_TOPLEVEL); -- g_object_ref_sink (G_OBJECT (window)); -- -- destroyHandlerID = g_signal_connect (G_OBJECT (window), "destroy", -- G_CALLBACK (+[](GtkWidget*, gpointer arg) -- { -- static_cast (arg)->windowDestroyEvent(); -- }), -- this); -- setBounds (bounds); -- setVisible (true); -- } -- -- ~Pimpl() -- { -- if (destroyHandlerID != 0 && window != nullptr) -- g_signal_handler_disconnect (G_OBJECT (window), destroyHandlerID); -- -- g_clear_object (&window); -- } -- -- void windowDestroyEvent() -- { -- g_clear_object (&window); -- -- if (owner.windowClosed != nullptr) -- owner.windowClosed(); -- } -- -- void* getWindowHandle() const { return (void*) window; } -- -- void setWindowTitle (const std::string& newTitle) -- { -- gtk_window_set_title (GTK_WINDOW (window), newTitle.c_str()); -- } -- -- void setContent (void* view) -- { -- if (content != nullptr) -- gtk_container_remove (GTK_CONTAINER (window), content); -- -- content = GTK_WIDGET (view); -- gtk_container_add (GTK_CONTAINER (window), content); -- gtk_widget_grab_focus (content); -- } -- -- void setVisible (bool visible) -- { -- if (visible) -- gtk_widget_show_all (window); -- else -- gtk_widget_hide (window); -- } -- -- void setResizable (bool b) { gtk_window_set_resizable (GTK_WINDOW (window), b); } -- void setClosable (bool b) { gtk_window_set_deletable (GTK_WINDOW (window), b); } -- -- void setMinimumSize (int w, int h) -- { -- GdkGeometry g; -- g.min_width = w; -- g.min_height = h; -- gtk_window_set_geometry_hints (GTK_WINDOW (window), nullptr, &g, GDK_HINT_MIN_SIZE); -- } -- -- void setMaximumSize (int w, int h) -- { -- GdkGeometry g; -- g.max_width = w; -- g.max_height = h; -- gtk_window_set_geometry_hints (GTK_WINDOW (window), nullptr, &g, GDK_HINT_MAX_SIZE); -- } -- -- void setBounds (Bounds b) -- { -- setSize (b.width, b.height); -- gtk_window_move (GTK_WINDOW (window), b.x, b.y); -- } -- -- void setSize (int w, int h) -- { -- if (gtk_window_get_resizable (GTK_WINDOW (window))) -- gtk_window_resize (GTK_WINDOW (window), w, h); -- else -- gtk_widget_set_size_request (window, w, h); -- } -- -- void centreWithSize (int w, int h) -- { -- setSize (w, h); -- gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER); -- } -- -- void toFront() -- { -- gtk_window_activate_default (GTK_WINDOW (window)); -- } -- -- DesktopWindow& owner; -- GtkWidget* window = {}; -- GtkWidget* content = {}; -- unsigned long destroyHandlerID = 0; --}; -- --inline void choc::ui::setWindowsDPIAwareness() {} -- --//============================================================================== --#elif CHOC_APPLE -- --#include "choc_MessageLoop.h" -- --namespace choc::ui --{ -- --namespace macos_ui_helpers --{ -- // Including CodeGraphics.h can create all kinds of messy C/C++ symbol clashes -- // with other headers, but all we actually need are these coordinate structs: -- #if defined (__LP64__) && __LP64__ -- using CGFloat = double; -- #else -- using CGFloat = float; -- #endif -- -- struct CGPoint { CGFloat x = 0, y = 0; }; -- struct CGSize { CGFloat width = 0, height = 0; }; -- struct CGRect { CGPoint origin; CGSize size; }; -- -- inline CGSize createCGSize (double w, double h) { return { (CGFloat) w, (CGFloat) h }; } -- inline CGRect createCGRect (choc::ui::Bounds b) { return { { (CGFloat) b.x, (CGFloat) b.y }, { (CGFloat) b.width, (CGFloat) b.height } }; } -- -- static constexpr long NSWindowStyleMaskTitled = 1; -- static constexpr long NSWindowStyleMaskMiniaturizable = 4; -- static constexpr long NSWindowStyleMaskResizable = 8; -- static constexpr long NSWindowStyleMaskClosable = 2; -- static constexpr long NSBackingStoreBuffered = 2; -- static constexpr long NSApplicationActivationPolicyRegular = 0; --} -- --using namespace macos_ui_helpers; -- --inline void setWindowsDPIAwareness() {} -- --struct DesktopWindow::Pimpl --{ -- Pimpl (DesktopWindow& w, Bounds bounds) : owner (w) -- { -- using namespace choc::objc; -- CHOC_AUTORELEASE_BEGIN -- call (getSharedNSApplication(), "setActivationPolicy:", NSApplicationActivationPolicyRegular); -- -- window = call (call (getClass ("NSWindow"), "alloc"), -- "initWithContentRect:styleMask:backing:defer:", -- createCGRect (bounds), -- NSWindowStyleMaskTitled, NSBackingStoreBuffered, (int) 0); -- -- delegate = createDelegate(); -- setStyleBit (NSWindowStyleMaskTitled | NSWindowStyleMaskClosable | NSWindowStyleMaskMiniaturizable, true); -- objc_setAssociatedObject (delegate, "choc_window", (CHOC_OBJC_CAST_BRIDGED id) this, OBJC_ASSOCIATION_ASSIGN); -- call (window, "setDelegate:", delegate); -- CHOC_AUTORELEASE_END -- } -- -- ~Pimpl() -- { -- CHOC_AUTORELEASE_BEGIN -- objc::call (window, "setDelegate:", nullptr); -- objc::call (window, "close"); -- objc::call (delegate, "release"); -- CHOC_AUTORELEASE_END -- } -- -- void* getWindowHandle() const { return (CHOC_OBJC_CAST_BRIDGED void*) window; } -- -- void setWindowTitle (const std::string& newTitle) -- { -- CHOC_AUTORELEASE_BEGIN -- objc::call (window, "setTitle:", objc::getNSString (newTitle)); -- CHOC_AUTORELEASE_END -- } -- -- void setContent (void* view) -- { -- CHOC_AUTORELEASE_BEGIN -- objc::call (window, "setContentView:", (CHOC_OBJC_CAST_BRIDGED id) view); -- CHOC_AUTORELEASE_END -- } -- -- void setVisible (bool visible) -- { -- CHOC_AUTORELEASE_BEGIN -- objc::call (window, "setIsVisible:", (BOOL) visible); -- CHOC_AUTORELEASE_END -- } -- -- void setStyleBit (long bit, bool shouldEnable) -- { -- CHOC_AUTORELEASE_BEGIN -- auto style = objc::call (window, "styleMask"); -- style = shouldEnable ? (style | (unsigned long) bit) : (style & ~(unsigned long) bit); -- objc::call (window, "setStyleMask:", style); -- CHOC_AUTORELEASE_END -- } -- -- void setResizable (bool b) { setStyleBit (NSWindowStyleMaskResizable, b); } -- void setClosable (bool b) { setStyleBit (NSWindowStyleMaskClosable, b); } -- -- void setMinimumSize (int w, int h) { CHOC_AUTORELEASE_BEGIN objc::call (window, "setContentMinSize:", createCGSize (w, h)); CHOC_AUTORELEASE_END } -- void setMaximumSize (int w, int h) { CHOC_AUTORELEASE_BEGIN objc::call (window, "setContentMaxSize:", createCGSize (w, h)); CHOC_AUTORELEASE_END } -- -- CGRect getFrameRectForContent (Bounds b) -- { -- return objc::call (window, "frameRectForContentRect:", createCGRect (b)); -- } -- -- void centreWithSize (int w, int h) -- { -- CHOC_AUTORELEASE_BEGIN -- objc::call (window, "setFrame:display:animate:", getFrameRectForContent ({ 0, 0, w, h }), (BOOL) 1, (BOOL) 0); -- objc::call (window, "center"); -- CHOC_AUTORELEASE_END -- } -- -- void setBounds (Bounds b) -- { -- CHOC_AUTORELEASE_BEGIN -- objc::call (window, "setFrame:display:animate:", getFrameRectForContent (b), (BOOL) 1, (BOOL) 0); -- CHOC_AUTORELEASE_END -- } -- -- void toFront() -- { -- CHOC_AUTORELEASE_BEGIN -- objc::call (objc::getSharedNSApplication(), "activateIgnoringOtherApps:", (BOOL) 1); -- objc::call (window, "makeKeyAndOrderFront:", (id) nullptr); -- CHOC_AUTORELEASE_END -- } -- -- static Pimpl& getPimplFromContext (id self) -- { -- auto view = (CHOC_OBJC_CAST_BRIDGED Pimpl*) objc_getAssociatedObject (self, "choc_window"); -- CHOC_ASSERT (view != nullptr); -- return *view; -- } -- -- id createDelegate() -- { -- static DelegateClass dc; -- return objc::call ((id) dc.delegateClass, "new"); -- } -- -- DesktopWindow& owner; -- id window = {}, delegate = {}; -- -- struct DelegateClass -- { -- DelegateClass() -- { -- delegateClass = choc::objc::createDelegateClass ("NSResponder", "CHOCDesktopWindowDelegate_"); -- -- if (auto* p = objc_getProtocol ("NSWindowDelegate")) -- class_addProtocol (delegateClass, p); -- -- class_addMethod (delegateClass, sel_registerName ("windowShouldClose:"), -- (IMP) (+[](id self, SEL, id) -> BOOL -- { -- CHOC_AUTORELEASE_BEGIN -- auto& p = getPimplFromContext (self); -- p.window = {}; -- -- if (auto callback = p.owner.windowClosed) -- choc::messageloop::postMessage ([callback] { callback(); }); -- -- CHOC_AUTORELEASE_END -- return TRUE; -- }), -- "c@:@"); -- -- class_addMethod (delegateClass, sel_registerName ("windowDidResize:"), -- (IMP) (+[](id self, SEL, id) -- { -- CHOC_AUTORELEASE_BEGIN -- -- if (auto callback = getPimplFromContext (self).owner.windowResized) -- callback(); -- -- CHOC_AUTORELEASE_END -- }), -- "v@:@"); -- -- class_addMethod (delegateClass, sel_registerName ("applicationShouldTerminateAfterLastWindowClosed:"), -- (IMP) (+[](id, SEL, id) -> BOOL { return 0; }), -- "c@:@"); -- -- objc_registerClassPair (delegateClass); -- } -- -- ~DelegateClass() -- { -- objc_disposeClassPair (delegateClass); -- } -- -- Class delegateClass = {}; -- }; --}; -- --} // namespace choc::ui -- --//============================================================================== --#elif CHOC_WINDOWS -- - #undef WIN32_LEAN_AND_MEAN - #define WIN32_LEAN_AND_MEAN - #undef NOMINMAX -@@ -453,27 +40,7 @@ struct DesktopWindow::Pimpl - #include - #undef Rectangle - --namespace choc::ui --{ -- --static RECT boundsToRect (Bounds b) --{ -- RECT r; -- r.left = b.x; -- r.top = b.y; -- r.right = b.x + b.width; -- r.bottom = b.y + b.height; -- return r; --} -- --template --FunctionType getUser32Function (const char* name) --{ -- if (auto user32 = choc::file::DynamicLibrary ("user32.dll")) -- return reinterpret_cast (user32.findFunction (name)); -- -- return {}; --} -+START_NAMESPACE_DISTRHO - - struct HWNDHolder - { -@@ -516,7 +83,7 @@ struct WindowClass - wc.lpfnWndProc = wndProc; - - classAtom = (LPCWSTR) (uintptr_t) RegisterClassExW (&wc); -- CHOC_ASSERT (classAtom != 0); -+ DISTRHO_SAFE_ASSERT (classAtom != 0); - } - - ~WindowClass() -@@ -582,250 +149,6 @@ static std::wstring createUTF16StringFromUTF8 (std::string_view utf8) - return {}; - } - --inline void setWindowsDPIAwareness() --{ -- if (auto setProcessDPIAwarenessContext = getUser32Function ("SetProcessDpiAwarenessContext")) -- setProcessDPIAwarenessContext (/*DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2*/ (void*) -4); --} -- --//============================================================================== --struct DesktopWindow::Pimpl --{ -- Pimpl (DesktopWindow& w, Bounds b) : owner (w) -- { -- hwnd = windowClass.createWindow (WS_OVERLAPPEDWINDOW, 640, 480, this); -- -- if (hwnd.hwnd == nullptr) -- return; -- -- setBounds (b); -- ShowWindow (hwnd, SW_SHOW); -- UpdateWindow (hwnd); -- SetFocus (hwnd); -- } -- -- ~Pimpl() -- { -- hwnd.reset(); -- } -- -- void* getWindowHandle() const { return hwnd; } -- -- void setWindowTitle (const std::string& newTitle) -- { -- SetWindowTextW (hwnd, createUTF16StringFromUTF8 (newTitle).c_str()); -- } -- -- void setContent (void* childHandle) -- { -- if (auto child = getFirstChildWindow()) -- { -- ShowWindow (child, SW_HIDE); -- SetParent (child, nullptr); -- } -- -- auto child = (HWND) childHandle; -- auto flags = GetWindowLongPtr (child, -16); -- flags = (flags & ~(decltype (flags)) WS_POPUP) | (decltype (flags)) WS_CHILD; -- SetWindowLongPtr (child, -16, flags); -- -- SetParent (child, hwnd); -- resizeContentToFit(); -- ShowWindow (child, IsWindowVisible (hwnd) ? SW_SHOW : SW_HIDE); -- } -- -- void setVisible (bool visible) -- { -- ShowWindow (hwnd, visible ? SW_SHOW : SW_HIDE); -- -- if (visible) -- InvalidateRect (hwnd, nullptr, 0); -- } -- -- void setResizable (bool b) -- { -- auto style = GetWindowLong (hwnd, GWL_STYLE); -- -- if (b) -- style |= (WS_THICKFRAME | WS_MAXIMIZEBOX); -- else -- style &= ~(WS_THICKFRAME | WS_MAXIMIZEBOX); -- -- SetWindowLong (hwnd, GWL_STYLE, style); -- } -- -- void setClosable (bool closable) -- { -- EnableMenuItem (GetSystemMenu (hwnd, FALSE), SC_CLOSE, -- closable ? (MF_BYCOMMAND | MF_ENABLED) -- : (MF_BYCOMMAND | MF_DISABLED | MF_GRAYED)); -- } -- -- void setMinimumSize (int w, int h) -- { -- minimumSize.x = w; -- minimumSize.y = h; -- } -- -- void setMaximumSize (int w, int h) -- { -- maximumSize.x = w; -- maximumSize.y = h; -- } -- -- void getMinMaxInfo (MINMAXINFO& m) const -- { -- if (maximumSize.x > 0 && maximumSize.y > 0) -- { -- m.ptMaxSize = maximumSize; -- m.ptMaxTrackSize = maximumSize; -- } -- -- if (minimumSize.x > 0 && minimumSize.y > 0) -- m.ptMinTrackSize = minimumSize; -- } -- -- void centreWithSize (int w, int h) -- { -- auto dpi = static_cast (getWindowDPI()); -- auto screenW = (GetSystemMetrics(SM_CXSCREEN) * 96) / dpi; -- auto screenH = (GetSystemMetrics(SM_CYSCREEN) * 96) / dpi; -- auto x = (screenW - w) / 2; -- auto y = (screenH - h) / 2; -- setBounds ({ x, y, w, h }, SWP_NOZORDER | SWP_NOACTIVATE | SWP_FRAMECHANGED); -- } -- -- void setBounds (Bounds b) -- { -- setBounds (b, SWP_NOZORDER | SWP_NOACTIVATE | SWP_FRAMECHANGED); -- } -- -- void setBounds (Bounds b, DWORD flags) -- { -- auto r = boundsToRect (scaleBounds (b, getWindowDPI() / 96.0)); -- AdjustWindowRect (&r, WS_OVERLAPPEDWINDOW, 0); -- SetWindowPos (hwnd, nullptr, r.left, r.top, r.right - r.left, r.bottom - r.top, flags); -- resizeContentToFit(); -- } -- -- void toFront() -- { -- BringWindowToTop (hwnd); -- } -- --private: -- DesktopWindow& owner; -- HWNDHolder hwnd; -- POINT minimumSize = {}, maximumSize = {}; -- WindowClass windowClass { L"CHOCWindow", (WNDPROC) wndProc }; -- -- Bounds scaleBounds (Bounds b, double scale) -- { -- b.x = static_cast (b.x * scale); -- b.y = static_cast (b.y * scale); -- b.width = static_cast (b.width * scale); -- b.height = static_cast (b.height * scale); -- -- return b; -- } -- -- HWND getFirstChildWindow() -- { -- HWND result = {}; -- -- if (IsWindow (hwnd)) -- { -- EnumChildWindows (hwnd, +[](HWND w, LPARAM context) -- { -- *reinterpret_cast (context) = w; -- return FALSE; -- }, (LPARAM) &result); -- } -- -- return result; -- } -- -- void resizeContentToFit() -- { -- if (auto child = getFirstChildWindow()) -- { -- RECT r; -- GetClientRect (hwnd, &r); -- SetWindowPos (child, nullptr, r.left, r.top, r.right - r.left, r.bottom - r.top, -- SWP_NOZORDER | SWP_NOACTIVATE | SWP_NOMOVE | SWP_FRAMECHANGED); -- } -- } -- -- void handleClose() -- { -- if (owner.windowClosed != nullptr) -- owner.windowClosed(); -- } -- -- void handleSizeChange() -- { -- resizeContentToFit(); -- -- if (owner.windowResized != nullptr) -- owner.windowResized(); -- } -- -- static void enableNonClientDPIScaling (HWND h) -- { -- if (auto fn = getUser32Function ("EnableNonClientDpiScaling")) -- fn (h); -- } -- -- uint32_t getWindowDPI() const -- { -- if (auto getDpiForWindow = getUser32Function ("GetDpiForWindow")) -- return getDpiForWindow (hwnd); -- -- return 96; -- } -- -- static Pimpl* getPimpl (HWND h) { return (Pimpl*) GetWindowLongPtr (h, GWLP_USERDATA); } -- -- static LRESULT wndProc (HWND h, UINT msg, WPARAM wp, LPARAM lp) -- { -- switch (msg) -- { -- case WM_NCCREATE: enableNonClientDPIScaling (h); break; -- case WM_SIZE: if (auto w = getPimpl (h)) w->handleSizeChange(); break; -- case WM_CLOSE: if (auto w = getPimpl (h)) w->handleClose(); return 0; -- case WM_GETMINMAXINFO: if (auto w = getPimpl (h)) w->getMinMaxInfo (*(LPMINMAXINFO) lp); return 0; -- default: break; -- } -- -- return DefWindowProcW (h, msg, wp, lp); -- } --}; -- --} // namespace choc::ui -- --#else -- #error "choc DesktopWindow only supports OSX, Windows or Linux!" --#endif -- --namespace choc::ui --{ -- --//============================================================================== --inline DesktopWindow::DesktopWindow (Bounds b) { pimpl = std::make_unique (*this, b); } --inline DesktopWindow::~DesktopWindow() {} -- --inline void* DesktopWindow::getWindowHandle() const { return pimpl->getWindowHandle(); } --inline void DesktopWindow::setContent (void* view) { pimpl->setContent (view); } --inline void DesktopWindow::setVisible (bool visible) { pimpl->setVisible (visible); } --inline void DesktopWindow::setWindowTitle (const std::string& title) { pimpl->setWindowTitle (title); } --inline void DesktopWindow::setMinimumSize (int w, int h) { pimpl->setMinimumSize (w, h); } --inline void DesktopWindow::setMaximumSize (int w, int h) { pimpl->setMaximumSize (w, h); } --inline void DesktopWindow::setResizable (bool b) { pimpl->setResizable (b); } --inline void DesktopWindow::setClosable (bool b) { pimpl->setClosable (b); } --inline void DesktopWindow::setBounds (Bounds b) { pimpl->setBounds (b); } --inline void DesktopWindow::centreWithSize (int w, int h) { pimpl->centreWithSize (w, h); } --inline void DesktopWindow::toFront() { pimpl->toFront(); } -- --} // namespace choc::ui -+END_NAMESPACE_DISTRHO - - #endif // CHOC_DESKTOPWINDOW_HEADER_INCLUDED -diff --git a/choc_DynamicLibrary.h b/choc_DynamicLibrary.h -index 85b2cfd..ef8c282 100644 ---- a/choc_DynamicLibrary.h -+++ b/choc_DynamicLibrary.h -@@ -21,8 +21,7 @@ - - #include - --namespace choc::file --{ -+START_NAMESPACE_DISTRHO - - //============================================================================== - /** -@@ -87,38 +86,8 @@ inline DynamicLibrary& DynamicLibrary::operator= (DynamicLibrary&& other) - return *this; - } - --} // namespace choc::file -- --#if ! (defined (_WIN32) || defined (_WIN64)) -- --#include -- --inline choc::file::DynamicLibrary::DynamicLibrary (std::string_view library) --{ -- handle = ::dlopen (std::string (library).c_str(), RTLD_LOCAL | RTLD_NOW); --} -- --inline void choc::file::DynamicLibrary::close() --{ -- if (handle != nullptr) -- { -- ::dlclose (handle); -- handle = nullptr; -- } --} -- --inline void* choc::file::DynamicLibrary::findFunction (std::string_view name) --{ -- if (handle != nullptr) -- return ::dlsym (handle, std::string (name).c_str()); -- -- return {}; --} -- --#else -- - //============================================================================== --namespace choc::win32_defs -+namespace win32_defs - { - #if ! (defined (_WINDOWS_) || defined (_APISETLIBLOADER_)) // only use these local definitions if windows.h isn't already included - using CHOC_HMODULE = void*; -@@ -145,12 +114,12 @@ namespace choc::win32_defs - #endif - } - --inline choc::file::DynamicLibrary::DynamicLibrary (std::string_view library) -+inline DynamicLibrary::DynamicLibrary (std::string_view library) - { - handle = (void*) win32_defs::LoadLibraryA (std::string (library).c_str()); - } - --inline void choc::file::DynamicLibrary::close() -+inline void DynamicLibrary::close() - { - if (handle != nullptr) - { -@@ -159,7 +128,7 @@ inline void choc::file::DynamicLibrary::close() - } - } - --inline void* choc::file::DynamicLibrary::findFunction (std::string_view name) -+inline void* DynamicLibrary::findFunction (std::string_view name) - { - if (handle != nullptr) - return (void*) win32_defs::GetProcAddress ((win32_defs::CHOC_HMODULE) handle, std::string (name).c_str()); -@@ -167,6 +136,6 @@ inline void* choc::file::DynamicLibrary::findFunction (std::string_view name) - return {}; - } - --#endif -+END_NAMESPACE_DISTRHO - - #endif // CHOC_DYNAMIC_LIBRARY_HEADER_INCLUDED -diff --git a/choc_FloatToString.h b/choc_FloatToString.h -index bf89933..586ecca 100644 ---- a/choc_FloatToString.h -+++ b/choc_FloatToString.h -@@ -21,7 +21,7 @@ - - #include - #include --#include "../math/choc_MathHelpers.h" -+#include "choc_MathHelpers.h" - - namespace choc::text - { -diff --git a/choc_JSON.h b/choc_JSON.h -index dbea379..617e2af 100644 ---- a/choc_JSON.h -+++ b/choc_JSON.h -@@ -26,7 +26,7 @@ - - #include "choc_UTF8.h" - #include "choc_FloatToString.h" --#include "../containers/choc_Value.h" -+#include "choc_Value.h" - - #undef max // It's never a smart idea to include any C headers before your C++ ones, as it - #undef min // risks polluting your namespace with all kinds of dangerous macros like these ones. -diff --git a/choc_MemoryDLL.h b/choc_MemoryDLL.h -index 00c3caa..f60eea1 100644 ---- a/choc_MemoryDLL.h -+++ b/choc_MemoryDLL.h -@@ -23,8 +23,7 @@ - #include - #include - --namespace choc::memory --{ -+START_NAMESPACE_DISTRHO - - /** - MemoryDLL is an egregious hack that allows you to load DLL files from a chunk -@@ -62,7 +61,7 @@ private: - std::unique_ptr pimpl; - }; - --} // namespace choc::memory -+END_NAMESPACE_DISTRHO - - - -@@ -77,8 +76,6 @@ private: - // - //============================================================================== - --#if defined (_WIN32) || defined (_WIN64) -- - #include - #include - #undef WIN32_LEAN_AND_MEAN -@@ -89,8 +86,7 @@ private: - #include - #undef Rectangle - --namespace choc::memory --{ -+START_NAMESPACE_DISTRHO - - struct MemoryDLL::Pimpl - { -@@ -497,20 +493,6 @@ private: - } - }; - --#else -- --#include "choc_Assert.h" -- --namespace choc::memory --{ --struct MemoryDLL::Pimpl --{ -- bool initialise (const void*, size_t) { CHOC_ASSERT (false); return {}; } // Only available on Windows! -- void* findFunction (std::string_view) { CHOC_ASSERT (false); return {}; } // Only available on Windows! --}; -- --#endif -- - inline MemoryDLL::~MemoryDLL() = default; - - inline MemoryDLL::MemoryDLL (const void* data, size_t size) : pimpl (std::make_unique()) -@@ -524,6 +506,6 @@ inline void* MemoryDLL::findFunction (std::string_view name) - return pimpl != nullptr ? pimpl->findFunction (name) : nullptr; - } - --} // namespace choc::memory -+END_NAMESPACE_DISTRHO - - #endif // CHOC_MEMORYDLL_HEADER_INCLUDED -diff --git a/choc_StringUtilities.h b/choc_StringUtilities.h -index 3122f83..4cd54c6 100644 ---- a/choc_StringUtilities.h -+++ b/choc_StringUtilities.h -@@ -27,125 +27,14 @@ - #include - #include - #include --#include "../platform/choc_Assert.h" - --namespace choc::text --{ -+START_NAMESPACE_DISTRHO - - //============================================================================== --inline bool isWhitespace (char c) { return c == ' ' || (c <= 13 && c >= 9); } --inline bool isDigit (char c) { return static_cast (c - '0') < 10; } -- --/// Replaces all occurrences of a one or more substrings. --/// The arguments must be a sequence of pairs of strings, where the first of each pair is the string to --/// look for, followed by its replacement. --template --std::string replace (StringType textToSearch, -- std::string_view firstSubstringToReplace, std::string_view firstReplacement, -- OtherReplacements&&... otherPairsOfStringsToReplace); -- --/// Returns a string with any whitespace trimmed from its start and end. --std::string trim (std::string textToTrim); -- --/// Returns a string with any whitespace trimmed from its start and end. --std::string_view trim (std::string_view textToTrim); -- --/// Returns a string with any whitespace trimmed from its start and end. --std::string_view trim (const char* textToTrim); -- --/// Returns a string with any whitespace trimmed from its start. --std::string trimStart (std::string textToTrim); -- --/// Returns a string with any whitespace trimmed from its start. --std::string_view trimStart (std::string_view textToTrim); -- --/// Returns a string with any whitespace trimmed from its start. --std::string_view trimStart (const char* textToTrim); -- --/// Returns a string with any whitespace trimmed from its end. --std::string trimEnd (std::string textToTrim); -- --/// Returns a string with any whitespace trimmed from its end. --std::string_view trimEnd (std::string_view textToTrim); -- --/// Returns a string with any whitespace trimmed from its end. --std::string_view trimEnd (const char* textToTrim); -- --/// If the string begins with one or more instances of the given character, this --/// skips past them, returning the remainder of the string. --std::string_view trimCharacterAtStart (std::string_view textToTrim, char characterToSkip); -- --/// If the given character is at the start and end of the string, it trims it away. --std::string removeOuterCharacter (std::string text, char outerChar); -- --inline std::string removeDoubleQuotes (std::string text) { return removeOuterCharacter (std::move (text), '"'); } --inline std::string removeSingleQuotes (std::string text) { return removeOuterCharacter (std::move (text), '\''); } -- --inline std::string addDoubleQuotes (std::string text) { return "\"" + std::move (text) + "\""; } --inline std::string addSingleQuotes (std::string text) { return "'" + std::move (text) + "'"; } -- --std::string toLowerCase (std::string); --std::string toUpperCase (std::string); -- --template --std::vector splitString (std::string_view textToSplit, -- IsDelimiterChar&& isDelimiterChar, -- bool includeDelimitersInResult); -- --template --std::vector splitString (std::string_view textToSplit, -- CharStartsDelimiter&& isDelimiterStart, -- CharIsInDelimiterBody&& isDelimiterBody, -- bool includeDelimitersInResult); -- --std::vector splitString (std::string_view textToSplit, -- char delimiterCharacter, -- bool includeDelimitersInResult); -- --std::vector splitAtWhitespace (std::string_view text, bool keepDelimiters = false); -- --/// Splits a string at newline characters, returning an array of strings. --std::vector splitIntoLines (std::string_view text, bool includeNewLinesInResult); -- --/// Joins some kind of array of strings into a single string, adding the given separator --/// between them (but not adding it at the start or end) --template --std::string joinStrings (const ArrayOfStrings& strings, std::string_view separator); -- --/// Returns true if this text contains the given sub-string. --bool contains (std::string_view text, std::string_view possibleSubstring); --/// Returns true if this text starts with the given character. --bool startsWith (std::string_view text, char possibleStart); --/// Returns true if this text starts with the given sub-string. --bool startsWith (std::string_view text, std::string_view possibleStart); --/// Returns true if this text ends with the given sub-string. --bool endsWith (std::string_view text, char possibleEnd); --/// Returns true if this text ends with the given sub-string. --bool endsWith (std::string_view text, std::string_view possibleEnd); -- --/// Calculates the Levenstein distance between two strings. --template --size_t getLevenshteinDistance (const StringType& string1, -- const StringType& string2); -- --/// Converts a hex character to a number 0-15, or -1 if it's not a valid hex digit. --int hexDigitToInt (uint32_t unicodeChar); -- - /// Returns a hex string for the given value. - /// If the minimum number of digits is non-zero, it will be zero-padded to fill this length; - template --std::string createHexString (IntegerType value, int minNumDigits = 0); -- --/// Returns a truncated, easy-to-read version of a time as hours, seconds or milliseconds, --/// depending on its magnitude. The use-cases include things like logging or console app output. --std::string getDurationDescription (std::chrono::duration); -- --/// Returns an easy-to-read description of a size in bytes. Depending on the magnitude, --/// it might choose different units such as GB, MB, KB or just bytes. --std::string getByteSizeDescription (uint64_t sizeInBytes); -- --/// Encodes a string as a legal URI, using percent-encoding (aka URL encoding) --std::string percentEncodeURI (std::string_view text); -+std::string createHexString (IntegerType value); - - - //============================================================================== -@@ -159,20 +48,11 @@ std::string percentEncodeURI (std::string_view text); - // - //============================================================================== - --inline int hexDigitToInt (uint32_t c) --{ -- auto d1 = c - static_cast ('0'); if (d1 < 10u) return static_cast (d1); -- auto d2 = d1 + static_cast ('0' - 'a'); if (d2 < 6u) return static_cast (d2 + 10); -- auto d3 = d2 + static_cast ('a' - 'A'); if (d3 < 6u) return static_cast (d3 + 10); -- return -1; --} -- - template --std::string createHexString (IntegerType v, int minNumDigits) -+std::string createHexString (IntegerType v) - { - static_assert (std::is_integral::value, "Need to pass integers into this method"); - auto value = static_cast::type> (v); -- CHOC_ASSERT (minNumDigits <= 32); - - char hex[40]; - const auto end = hex + sizeof (hex) - 1; -@@ -183,415 +63,12 @@ std::string createHexString (IntegerType v, int minNumDigits) - { - *--d = "0123456789abcdef"[static_cast (value) & 15u]; - value = static_cast (value >> 4); -- --minNumDigits; - -- if (value == 0 && minNumDigits <= 0) -+ if (value == 0) - return std::string (d, end); - } - } - --template --std::string replace (StringType textToSearch, std::string_view firstToReplace, std::string_view firstReplacement, -- OtherReplacements&&... otherPairsOfStringsToReplace) --{ -- static_assert ((sizeof... (otherPairsOfStringsToReplace) & 1u) == 0, -- "This function expects a list of pairs of strings as its arguments"); -- -- if constexpr (std::is_same::value || std::is_same::value) -- { -- return replace (std::string (textToSearch), firstToReplace, firstReplacement, -- std::forward (otherPairsOfStringsToReplace)...); -- } -- else if constexpr (sizeof... (otherPairsOfStringsToReplace) == 0) -- { -- size_t pos = 0; -- -- for (;;) -- { -- pos = textToSearch.find (firstToReplace, pos); -- -- if (pos == std::string::npos) -- return textToSearch; -- -- textToSearch.replace (pos, firstToReplace.length(), firstReplacement); -- pos += firstReplacement.length(); -- } -- } -- else -- { -- return replace (replace (std::move (textToSearch), firstToReplace, firstReplacement), -- std::forward (otherPairsOfStringsToReplace)...); -- } --} -- --inline std::string trim (std::string text) { return trimStart (trimEnd (std::move (text))); } --inline std::string_view trim (std::string_view text) { return trimStart (trimEnd (std::move (text))); } -- --inline std::string_view trim (const char* text) { return trim (std::string_view (text)); } --inline std::string_view trimStart (const char* text) { return trimStart (std::string_view (text)); } --inline std::string_view trimEnd (const char* text) { return trimEnd (std::string_view (text)); } -- --inline std::string trimStart (std::string text) --{ -- auto i = text.begin(); -- -- if (i == text.end()) return {}; -- if (! isWhitespace (*i)) return text; -- -- for (;;) -- { -- ++i; -- -- if (i == text.end()) return {}; -- if (! isWhitespace (*i)) return { i, text.end() }; -- } --} -- --inline std::string_view trimStart (std::string_view text) --{ -- size_t i = 0; -- -- for (auto c : text) -- { -- if (! isWhitespace (c)) -- { -- text.remove_prefix (i); -- return text; -- } -- -- ++i; -- } -- -- return {}; --} -- --inline std::string trimEnd (std::string text) --{ -- for (auto i = text.end();;) -- { -- if (i == text.begin()) -- return {}; -- -- --i; -- -- if (! isWhitespace (*i)) -- { -- text.erase (i + 1, text.end()); -- return text; -- } -- } --} -- --inline std::string_view trimEnd (std::string_view text) --{ -- for (auto i = text.length(); i != 0; --i) -- if (! isWhitespace (text[i - 1])) -- return text.substr (0, i); -- -- return {}; --} -- --inline std::string_view trimCharacterAtStart (std::string_view textToTrim, char characterToSkip) --{ -- for (size_t i = 0; i < textToTrim.length(); ++i) -- if (textToTrim[i] != characterToSkip) -- return textToTrim.substr (i); -- -- return {}; --} -- --inline std::string removeOuterCharacter (std::string t, char outerChar) --{ -- if (t.length() >= 2 && t.front() == outerChar && t.back() == outerChar) -- return t.substr (1, t.length() - 2); -- -- return t; --} -- --inline std::string toLowerCase (std::string s) --{ -- std::transform (s.begin(), s.end(), s.begin(), [] (auto c) { return static_cast (std::tolower (static_cast (c))); }); -- return s; --} -- --inline std::string toUpperCase (std::string s) --{ -- std::transform (s.begin(), s.end(), s.begin(), [] (auto c) { return static_cast (std::toupper (static_cast (c))); }); -- return s; --} -- --template --std::vector splitString (std::string_view source, -- CharStartsDelimiter&& isDelimiterStart, -- CharIsInDelimiterBody&& isDelimiterBody, -- bool keepDelimiters) --{ -- std::vector tokens; -- auto tokenStart = source.begin(); -- auto pos = tokenStart; -- -- while (pos != source.end()) -- { -- if (isDelimiterStart (*pos)) -- { -- auto delimiterStart = pos++; -- -- while (pos != source.end() && isDelimiterBody (*pos)) -- ++pos; -- -- if (pos != source.begin()) -- tokens.push_back ({ tokenStart, keepDelimiters ? pos : delimiterStart }); -- -- tokenStart = pos; -- } -- else -- { -- ++pos; -- } -- } -- -- if (pos != source.begin()) -- tokens.push_back ({ tokenStart, pos }); -- -- return tokens; --} -- --template --std::vector splitString (std::string_view source, IsDelimiterChar&& isDelimiterChar, bool keepDelimiters) --{ -- std::vector tokens; -- auto tokenStart = source.begin(); -- auto pos = tokenStart; -- -- while (pos != source.end()) -- { -- if (isDelimiterChar (*pos)) -- { -- tokens.push_back ({ tokenStart, keepDelimiters ? pos + 1 : pos }); -- tokenStart = ++pos; -- } -- else -- { -- ++pos; -- } -- } -- -- if (pos != source.begin()) -- tokens.push_back ({ tokenStart, pos }); -- -- return tokens; --} -- --inline std::vector splitString (std::string_view text, char delimiterCharacter, bool keepDelimiters) --{ -- return splitString (text, [=] (char c) { return c == delimiterCharacter; }, keepDelimiters); --} -- --inline std::vector splitAtWhitespace (std::string_view text, bool keepDelimiters) --{ -- return splitString (text, -- [] (char c) { return isWhitespace (c); }, -- [] (char c) { return isWhitespace (c); }, -- keepDelimiters); --} -- --inline std::vector splitIntoLines (std::string_view text, bool includeNewLinesInResult) --{ -- return splitString (text, '\n', includeNewLinesInResult); --} -- --template --inline std::string joinStrings (const ArrayOfStrings& strings, std::string_view sep) --{ -- if (strings.empty()) -- return {}; -- -- auto spaceNeeded = sep.length() * strings.size(); -- -- for (auto& s : strings) -- spaceNeeded += s.length(); -- -- std::string result (strings.front()); -- result.reserve (spaceNeeded); -- -- for (size_t i = 1; i < strings.size(); ++i) -- { -- result += sep; -- result += strings[i]; -- } -- -- return result; --} -- --inline bool contains (std::string_view t, std::string_view s) { return t.find (s) != std::string::npos; } --inline bool startsWith (std::string_view t, char s) { return ! t.empty() && t.front() == s; } --inline bool endsWith (std::string_view t, char s) { return ! t.empty() && t.back() == s; } -- --inline bool startsWith (std::string_view t, std::string_view s) --{ -- auto len = s.length(); -- return t.length() >= len && t.substr (0, len) == s; --} -- --inline bool endsWith (std::string_view t, std::string_view s) --{ -- auto len1 = t.length(), len2 = s.length(); -- return len1 >= len2 && t.substr (len1 - len2) == s; --} -- --inline std::string getDurationDescription (std::chrono::duration d) --{ -- auto microseconds = std::chrono::duration_cast (d).count(); -- -- if (microseconds < 0) return "-" + getDurationDescription (-d); -- if (microseconds == 0) return "0 sec"; -- -- std::string result; -- -- auto addLevel = [&] (int64_t size, std::string_view units, int64_t decimalScale, int64_t modulo) -> bool -- { -- if (microseconds < size) -- return false; -- -- if (! result.empty()) -- result += ' '; -- -- auto scaled = (microseconds * decimalScale + size / 2) / size; -- auto whole = scaled / decimalScale; -- -- if (modulo != 0) -- whole = whole % modulo; -- -- result += std::to_string (whole); -- -- if (auto fraction = scaled % decimalScale) -- { -- result += '.'; -- result += static_cast ('0' + (fraction / 10)); -- -- if (fraction % 10 != 0) -- result += static_cast ('0' + (fraction % 10)); -- } -- -- result += (whole == 1 && units.length() > 3 && units.back() == 's') ? units.substr (0, units.length() - 1) : units; -- return true; -- }; -- -- bool hours = addLevel (60000000ll * 60ll, " hours", 1, 0); -- bool mins = addLevel (60000000ll, " min", 1, hours ? 60 : 0); -- -- if (hours) -- return result; -- -- if (mins) -- { -- addLevel (1000000, " sec", 1, 60); -- } -- else -- { -- if (! addLevel (1000000, " sec", 100, 0)) -- if (! addLevel (1000, " ms", 100, 0)) -- addLevel (1, " microseconds", 100, 0); -- } -- -- return result; --} -- --template --size_t getLevenshteinDistance (const StringType& string1, const StringType& string2) --{ -- if (string1.empty()) return string2.length(); -- if (string2.empty()) return string1.length(); -- -- auto calculate = [] (size_t* costs, size_t numCosts, const StringType& s1, const StringType& s2) -> size_t -- { -- for (size_t i = 0; i < numCosts; ++i) -- costs[i] = i; -- -- size_t p1 = 0; -- -- for (auto c1 : s1) -- { -- auto corner = p1; -- *costs = p1 + 1; -- size_t p2 = 0; -- -- for (auto c2 : s2) -- { -- auto upper = costs[p2 + 1]; -- costs[p2 + 1] = c1 == c2 ? corner : (std::min (costs[p2], std::min (upper, corner)) + 1); -- ++p2; -- corner = upper; -- } -- -- ++p1; -- } -- -- return costs[numCosts - 1]; -- }; -- -- auto sizeNeeded = string2.length() + 1; -- constexpr size_t maxStackSize = 96; -- -- if (sizeNeeded <= maxStackSize) -- { -- size_t costs[maxStackSize]; -- return calculate (costs, sizeNeeded, string1, string2); -- } -- -- std::unique_ptr costs (new size_t[sizeNeeded]); -- return calculate (costs.get(), sizeNeeded, string1, string2); --} -- --inline std::string getByteSizeDescription (uint64_t size) --{ -- auto intToStringWith1DecPlace = [] (uint64_t n, uint64_t divisor) -> std::string -- { -- auto scaled = (n * 10 + divisor / 2) / divisor; -- auto result = std::to_string (scaled / 10); -- -- if (auto fraction = scaled % 10) -- { -- result += '.'; -- result += static_cast ('0' + fraction); -- } -- -- return result; -- }; -- -- static constexpr uint64_t maxValue = std::numeric_limits::max() / 10; -- -- if (size >= 0x40000000) return intToStringWith1DecPlace (std::min (maxValue, size), 0x40000000) + " GB"; -- if (size >= 0x100000) return intToStringWith1DecPlace (size, 0x100000) + " MB"; -- if (size >= 0x400) return intToStringWith1DecPlace (size, 0x400) + " KB"; -- if (size != 1) return std::to_string (size) + " bytes"; -- -- return "1 byte"; --} -- --inline std::string percentEncodeURI (std::string_view text) --{ -- std::string result; -- result.reserve (text.length()); -- -- for (auto c : text) -- { -- if (std::string_view ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-.~").find (c) != std::string_view::npos) -- { -- result += c; -- } -- else -- { -- result += '%'; -- result += "0123456789abcdef"[static_cast (c) >> 4]; -- result += "0123456789abcdef"[static_cast (c) & 15u]; -- } -- } -- -- return result; --} -- -- --} // namespace choc::text -+END_NAMESPACE_DISTRHO - - #endif -diff --git a/choc_Value.h b/choc_Value.h -index bd27f7a..5df22c4 100644 ---- a/choc_Value.h -+++ b/choc_Value.h -@@ -25,7 +25,7 @@ - #include - #include - #include --#include "../platform/choc_Assert.h" -+#include "choc_Assert.h" - - namespace choc::value - { -diff --git a/choc_WebView.h b/choc_WebView.h -index 3ddf610..935dce1 100644 ---- a/choc_WebView.h -+++ b/choc_WebView.h -@@ -23,46 +23,18 @@ - #include - #include - #include --#include "../platform/choc_Platform.h" --#include "../text/choc_JSON.h" -+#include -+#include -+#include "choc_Platform.h" -+#include "choc_StringUtilities.h" - --//============================================================================== --namespace choc::ui --{ -+START_NAMESPACE_DISTRHO - - /** - Creates an embedded browser which can be placed inside some kind of parent window. - - After creating a WebView object, its getViewHandle() returns a platform-specific -- handle that can be added to whatever kind of window is appropriate. The -- choc::ui::DesktopWindow class is an example of a window that can have the -- webview added to it via its choc::ui::DesktopWindow::setContent() method. -- -- There are unfortunately a few extra build steps needed for using WebView -- in your projects: -- -- - On OSX, you'll need to add the `WebKit` framework to your project -- -- - On Linux, you'll need to: -- 1. Install the libgtk-3-dev and libwebkit2gtk-4.0-dev packages. -- 2. Link the gtk+3.0 and webkit2gtk-4.0 libraries in your build. -- You might want to have a look inside choc/tests/CMakeLists.txt for -- an example of how to add those packages to your build without too -- much fuss. -- -- - On Windows, no extra build steps needed!! This is a bigger deal than it -- sounds, because normally to use an embedded Edge browser on Windows is a -- total PITA, involving downloading a special Microsoft SDK with redistributable -- DLLs, etc, but I've jumped through many ugly hoops to make this class -- fully self-contained. -- -- Because this is a GUI, it needs a message loop to be running. If you're using -- it inside an app which already runs a message loop, it should just work, -- or you can use choc::messageloop::run() and choc::messageloop::stop() for an easy -- but basic loop. -- -- For an example of how to use this class, see `choc/tests/main.cpp` where -- there's a simple demo. -+ handle that can be added to whatever kind of window is appropriate. - */ - class WebView - { -@@ -82,34 +54,6 @@ public: - // this empty for default behaviour. - std::string customUserAgent; - -- /// If you provide a fetchResource function, it is expected to return this -- /// object, which is simply the raw content of the resource, and its MIME type. -- struct Resource -- { -- Resource() = default; -- Resource (std::string_view content, std::string mimeType); -- -- std::vector data; -- std::string mimeType; -- }; -- -- using FetchResource = std::function(const std::string& path)>; -- -- /// Serve resources to the browser from a C++ callback function. -- /// This can effectively be used to implement a basic web server, -- /// serving resources to the browser in any way the client code chooses. -- /// Given the path URL component (i.e. starting from "/"), the client should -- /// return some bytes, and the associated MIME type, for that resource. -- /// When provided, this function will initially be called with the root path -- /// ("/") in order to serve the initial content for the page (or if the -- /// customSchemeURI property is also set, it will navigate to that URI). -- /// When this happens, the client should return some HTML with a "text/html" -- /// MIME type. -- /// Subsequent relative requests made from the page (e.g. via `img` tags, -- /// `fetch` calls from javascript etc) will all invoke calls to this callback -- /// with the requested path as their argument. -- FetchResource fetchResource; -- - /// If fetchResource is being used to serve custom data, you can choose to - /// override the default URI scheme by providing a home URI here, e.g. if - /// you wanted a scheme called `foo:`, you might set this to `foo://myname.com` -@@ -132,31 +76,18 @@ public: - /// fail on some systems if the OS doesn't provide a suitable component. - bool loadedOK() const; - -- /// Directly sets the HTML content of the browser -- bool setHTML (const std::string& html); -- -- /// This function type is used by evaluateJavascript(). -- using CompletionHandler = std::function; -- - /// Asynchronously evaluates some javascript. -- /// If you want to find out the result of the expression (or whether there -- /// was a compile error etc), then provide a callback function which will be -- /// invoked when the script is complete. - /// This will return true if the webview is in a state that lets it run code, or - /// false if something prevents that. -- bool evaluateJavascript (const std::string& script, CompletionHandler completionHandler = {}); -+ bool evaluateJavascript (const std::string& script); - - /// Sends the browser to this URL - bool navigate (const std::string& url); - - /// A callback function which can be passed to bind(). -- using CallbackFn = std::function; -- /// Binds a C++ function to a named javascript function that can be called -- /// by code running in the browser. -- bool bind (const std::string& functionName, CallbackFn&& function); -- /// Removes a previously-bound function. -- bool unbind (const std::string& functionName); -+ using CallbackFn = std::function; -+ /// Set the C++ callback function. -+ bool bind (CallbackFn&& function); - - /// Adds a script to run when the browser loads a page - bool addInitScript (const std::string& script); -@@ -169,14 +100,11 @@ private: - struct Pimpl; - std::unique_ptr pimpl; - -- std::unordered_map bindings; -+ CallbackFn binding {}; - void invokeBinding (const std::string&); -- static std::string getURIScheme (const Options&); -- static std::string getURIHome (const Options&); -- struct DeletionChecker { bool deleted = false; }; - }; - --} // namespace choc::ui -+END_NAMESPACE_DISTRHO - - - //============================================================================== -@@ -190,737 +118,14 @@ private: - // - //============================================================================== - --#if CHOC_LINUX -- --#include "../platform/choc_DisableAllWarnings.h" --#include --#include --#include "../platform/choc_ReenableAllWarnings.h" -- --struct choc::ui::WebView::Pimpl --{ -- Pimpl (WebView& v, const Options& options) -- : owner (v), fetchResource (options.fetchResource) -- { -- if (! gtk_init_check (nullptr, nullptr)) -- return; -- -- defaultURI = getURIHome (options); -- webviewContext = webkit_web_context_new(); -- g_object_ref_sink (G_OBJECT (webviewContext)); -- webview = webkit_web_view_new_with_context (webviewContext); -- g_object_ref_sink (G_OBJECT (webview)); -- manager = webkit_web_view_get_user_content_manager (WEBKIT_WEB_VIEW (webview)); -- -- signalHandlerID = g_signal_connect (manager, "script-message-received::external", -- G_CALLBACK (+[] (WebKitUserContentManager*, WebKitJavascriptResult* r, gpointer arg) -- { -- static_cast (arg)->invokeCallback (r); -- }), -- this); -- -- webkit_user_content_manager_register_script_message_handler (manager, "external"); -- -- WebKitSettings* settings = webkit_web_view_get_settings (WEBKIT_WEB_VIEW (webview)); -- webkit_settings_set_javascript_can_access_clipboard (settings, true); -- -- if (options.enableDebugMode) -- { -- webkit_settings_set_enable_write_console_messages_to_stdout (settings, true); -- webkit_settings_set_enable_developer_extras (settings, true); -- -- if (auto inspector = WEBKIT_WEB_INSPECTOR (webkit_web_view_get_inspector (WEBKIT_WEB_VIEW (webview)))) -- webkit_web_inspector_show (inspector); -- } -- -- if (! options.customUserAgent.empty()) -- webkit_settings_set_user_agent (settings, options.customUserAgent.c_str()); -- -- if (options.fetchResource) -- { -- const auto onResourceRequested = [] (auto* request, auto* context) -- { -- try -- { -- const auto* path = webkit_uri_scheme_request_get_path (request); -- -- if (const auto resource = static_cast (context)->fetchResource (path)) -- { -- const auto& [bytes, mimeType] = *resource; -- -- auto* streamBytes = g_bytes_new (bytes.data(), static_cast (bytes.size())); -- auto* stream = g_memory_input_stream_new_from_bytes (streamBytes); -- g_bytes_unref (streamBytes); -- -- auto* response = webkit_uri_scheme_response_new (stream, static_cast (bytes.size())); -- webkit_uri_scheme_response_set_status (response, 200, nullptr); -- webkit_uri_scheme_response_set_content_type (response, mimeType.c_str()); -- -- auto* headers = soup_message_headers_new (SOUP_MESSAGE_HEADERS_RESPONSE); -- soup_message_headers_append (headers, "Cache-Control", "no-store"); -- soup_message_headers_append (headers, "Access-Control-Allow-Origin", "*"); -- webkit_uri_scheme_response_set_http_headers (response, headers); // response takes ownership of the headers -- -- webkit_uri_scheme_request_finish_with_response (request, response); -- -- g_object_unref (stream); -- g_object_unref (response); -- } -- else -- { -- auto* stream = g_memory_input_stream_new(); -- auto* response = webkit_uri_scheme_response_new (stream, -1); -- webkit_uri_scheme_response_set_status (response, 404, nullptr); -- -- webkit_uri_scheme_request_finish_with_response (request, response); -- -- g_object_unref (stream); -- g_object_unref (response); -- } -- } -- catch (...) -- { -- auto* error = g_error_new (WEBKIT_NETWORK_ERROR, WEBKIT_NETWORK_ERROR_FAILED, "Something went wrong"); -- webkit_uri_scheme_request_finish_error (request, error); -- g_error_free (error); -- } -- }; -- -- webkit_web_context_register_uri_scheme (webviewContext, getURIScheme (options).c_str(), onResourceRequested, this, nullptr); -- navigate ({}); -- } -- -- gtk_widget_show_all (webview); -- } -- -- ~Pimpl() -- { -- deletionChecker->deleted = true; -- -- if (signalHandlerID != 0 && webview != nullptr) -- g_signal_handler_disconnect (manager, signalHandlerID); -- -- g_clear_object (&webview); -- g_clear_object (&webviewContext); -- } -- -- static constexpr const char* postMessageFn = "window.webkit.messageHandlers.external.postMessage"; -- -- bool loadedOK() const { return getViewHandle() != nullptr; } -- void* getViewHandle() const { return (void*) webview; } -- -- std::shared_ptr deletionChecker { std::make_shared() }; -- -- bool evaluateJavascript (const std::string& js, CompletionHandler&& completionHandler) -- { -- GAsyncReadyCallback callback = {}; -- gpointer userData = {}; -- -- if (completionHandler) -- { -- callback = evaluationCompleteCallback; -- userData = new CompletionHandler (std::move (completionHandler)); -- } -- -- #if WEBKIT_CHECK_VERSION (2, 40, 0) -- webkit_web_view_evaluate_javascript (WEBKIT_WEB_VIEW (webview), js.c_str(), static_cast (js.length()), -- nullptr, nullptr, nullptr, callback, userData); -- #else -- webkit_web_view_run_javascript (WEBKIT_WEB_VIEW (webview), js.c_str(), nullptr, callback, userData); -- #endif -- return true; -- } -- -- static void evaluationCompleteCallback (GObject* object, GAsyncResult* result, gpointer userData) -- { -- std::unique_ptr completionHandler (reinterpret_cast (userData)); -- choc::value::Value value; -- std::string errorMessage; -- GError* error = {}; -- -- #if WEBKIT_CHECK_VERSION (2, 40, 0) -- if (auto js_result = webkit_web_view_evaluate_javascript_finish (WEBKIT_WEB_VIEW (object), result, &error)) -- #else -- if (auto js_result = webkit_web_view_run_javascript_finish (WEBKIT_WEB_VIEW (object), result, &error)) -- #endif -- { -- if (error != nullptr) -- { -- errorMessage = error->message; -- g_error_free (error); -- } -- -- #if WEBKIT_CHECK_VERSION (2, 40, 0) -- if (auto js_value = js_result) -- #else -- if (auto js_value = webkit_javascript_result_get_js_value (js_result)) -- #endif -- { -- if (auto json = jsc_value_to_json (js_value, 0)) -- { -- try -- { -- auto jsonView = std::string_view (json); -- -- if (! jsonView.empty()) -- value = choc::json::parseValue (jsonView); -- } -- catch (const std::exception& e) -- { -- if (errorMessage.empty()) -- errorMessage = e.what(); -- } -- -- g_free (json); -- } -- else -- { -- if (errorMessage.empty()) -- errorMessage = "Failed to convert result to JSON"; -- } -- -- #if WEBKIT_CHECK_VERSION (2, 40, 0) -- g_object_unref (js_value); -- #endif -- } -- else -- { -- if (errorMessage.empty()) -- errorMessage = "Failed to fetch result"; -- } -- -- #if ! WEBKIT_CHECK_VERSION (2, 40, 0) -- webkit_javascript_result_unref (js_result); -- #endif -- } -- else -- { -- errorMessage = "Failed to fetch result"; -- } -- -- (*completionHandler) (errorMessage, value); -- } -- -- bool navigate (const std::string& url) -- { -- if (url.empty()) -- return navigate (defaultURI); -- -- webkit_web_view_load_uri (WEBKIT_WEB_VIEW (webview), url.c_str()); -- return true; -- } -- -- bool setHTML (const std::string& html) -- { -- webkit_web_view_load_html (WEBKIT_WEB_VIEW (webview), html.c_str(), nullptr); -- return true; -- } -- -- bool addInitScript (const std::string& js) -- { -- if (manager != nullptr) -- { -- webkit_user_content_manager_add_script (manager, webkit_user_script_new (js.c_str(), -- WEBKIT_USER_CONTENT_INJECT_TOP_FRAME, -- WEBKIT_USER_SCRIPT_INJECT_AT_DOCUMENT_START, -- nullptr, nullptr)); -- return true; -- } -- -- return false; -- } -- -- void invokeCallback (WebKitJavascriptResult* r) -- { -- auto s = jsc_value_to_string (webkit_javascript_result_get_js_value (r)); -- owner.invokeBinding (s); -- g_free (s); -- } -- -- WebView& owner; -- Options::FetchResource fetchResource; -- WebKitWebContext* webviewContext = {}; -- GtkWidget* webview = {}; -- WebKitUserContentManager* manager = {}; -- std::string defaultURI; -- unsigned long signalHandlerID = 0; --}; -- --//============================================================================== --#elif CHOC_APPLE -- --#include "choc_MessageLoop.h" -- --struct choc::ui::WebView::Pimpl --{ -- Pimpl (WebView& v, const Options& optionsToUse) -- : owner (v), options (std::make_unique (optionsToUse)) -- { -- using namespace choc::objc; -- CHOC_AUTORELEASE_BEGIN -- -- defaultURI = getURIHome (*options); -- -- id config = call (getClass ("WKWebViewConfiguration"), "new"); -- -- id prefs = call (config, "preferences"); -- call (prefs, "setValue:forKey:", getNSNumberBool (true), getNSString ("fullScreenEnabled")); -- call (prefs, "setValue:forKey:", getNSNumberBool (true), getNSString ("DOMPasteAllowed")); -- call (prefs, "setValue:forKey:", getNSNumberBool (true), getNSString ("javaScriptCanAccessClipboard")); -- -- if (options->enableDebugMode) -- call (prefs, "setValue:forKey:", getNSNumberBool (true), getNSString ("developerExtrasEnabled")); -- -- delegate = createDelegate(); -- objc_setAssociatedObject (delegate, "choc_webview", (CHOC_OBJC_CAST_BRIDGED id) this, OBJC_ASSOCIATION_ASSIGN); -- -- manager = call (config, "userContentController"); -- call (manager, "retain"); -- call (manager, "addScriptMessageHandler:name:", delegate, getNSString ("external")); -- -- if (options->fetchResource) -- call (config, "setURLSchemeHandler:forURLScheme:", delegate, getNSString (getURIScheme (*options))); -- -- webview = call (allocateWebview(), "initWithFrame:configuration:", CGRect(), config); -- objc_setAssociatedObject (webview, "choc_webview", (CHOC_OBJC_CAST_BRIDGED id) this, OBJC_ASSOCIATION_ASSIGN); -- -- if (! options->customUserAgent.empty()) -- call (webview, "setValue:forKey:", getNSString (options->customUserAgent), getNSString ("customUserAgent")); -- -- call (webview, "setUIDelegate:", delegate); -- call (webview, "setNavigationDelegate:", delegate); -- -- call (config, "release"); -- -- if (options->fetchResource) -- navigate ({}); -- -- CHOC_AUTORELEASE_END -- } -- -- ~Pimpl() -- { -- CHOC_AUTORELEASE_BEGIN -- deletionChecker->deleted = true; -- objc_setAssociatedObject (delegate, "choc_webview", nil, OBJC_ASSOCIATION_ASSIGN); -- objc_setAssociatedObject (webview, "choc_webview", nil, OBJC_ASSOCIATION_ASSIGN); -- objc::call (webview, "release"); -- webview = {}; -- objc::call (manager, "removeScriptMessageHandlerForName:", objc::getNSString ("external")); -- objc::call (manager, "release"); -- manager = {}; -- objc::call (delegate, "release"); -- delegate = {}; -- CHOC_AUTORELEASE_END -- } -- -- static constexpr const char* postMessageFn = "window.webkit.messageHandlers.external.postMessage"; -- -- bool loadedOK() const { return getViewHandle() != nullptr; } -- void* getViewHandle() const { return (CHOC_OBJC_CAST_BRIDGED void*) webview; } -- -- std::shared_ptr deletionChecker { std::make_shared() }; -- -- bool addInitScript (const std::string& script) -- { -- using namespace choc::objc; -- CHOC_AUTORELEASE_BEGIN -- -- if (id s = call (call (getClass ("WKUserScript"), "alloc"), "initWithSource:injectionTime:forMainFrameOnly:", -- getNSString (script), WKUserScriptInjectionTimeAtDocumentStart, (BOOL) 1)) -- { -- call (manager, "addUserScript:", s); -- call (s, "release"); -- return true; -- } -- -- CHOC_AUTORELEASE_END -- return false; -- } -- -- bool navigate (const std::string& url) -- { -- if (url.empty()) -- return navigate (defaultURI); -- -- using namespace choc::objc; -- CHOC_AUTORELEASE_BEGIN -- -- if (id nsURL = call (getClass ("NSURL"), "URLWithString:", getNSString (url))) -- return call (webview, "loadRequest:", call (getClass ("NSURLRequest"), "requestWithURL:", nsURL)) != nullptr; -- -- CHOC_AUTORELEASE_END -- return false; -- } -- -- bool setHTML (const std::string& html) -- { -- CHOC_AUTORELEASE_BEGIN -- return objc::call (webview, "loadHTMLString:baseURL:", objc::getNSString (html), (id) nullptr) != nullptr; -- CHOC_AUTORELEASE_END -- } -- -- bool evaluateJavascript (const std::string& script, CompletionHandler completionHandler) -- { -- CHOC_AUTORELEASE_BEGIN -- auto s = objc::getNSString (script); -- -- if (completionHandler) -- { -- objc::call (webview, "evaluateJavaScript:completionHandler:", s, -- ^(id result, id error) -- { -- CHOC_AUTORELEASE_BEGIN -- -- auto errorMessage = getMessageFromNSError (error); -- choc::value::Value value; -- -- try -- { -- if (auto json = convertNSObjectToJSON (result); ! json.empty()) -- value = choc::json::parseValue (json); -- } -- catch (const std::exception& e) -- { -- errorMessage = e.what(); -- } -- -- completionHandler (errorMessage, value); -- CHOC_AUTORELEASE_END -- }); -- } -- else -- { -- objc::call (webview, "evaluateJavaScript:completionHandler:", s, (id) nullptr); -- } -- -- return true; -- CHOC_AUTORELEASE_END -- } -- -- static std::string convertNSObjectToJSON (id value) -- { -- if (value) -- { -- if (id nsData = objc::call (objc::getClass ("NSJSONSerialization"), "dataWithJSONObject:options:error:", -- value, 12, (id) nullptr)) -- { -- auto data = objc::call (nsData, "bytes"); -- auto length = objc::call (nsData, "length"); -- return std::string (static_cast (data), static_cast (length)); -- } -- } -- -- return {}; -- } -- --private: -- id createDelegate() -- { -- static DelegateClass dc; -- return objc::call ((id) dc.delegateClass, "new"); -- } -- -- id allocateWebview() -- { -- static WebviewClass c; -- return objc::call ((id) c.webviewClass, "alloc"); -- } -- -- static std::string getMessageFromNSError (id nsError) -- { -- if (nsError) -- { -- if (id userInfo = objc::call (nsError, "userInfo")) -- if (id message = objc::call (userInfo, "objectForKey:", objc::getNSString ("WKJavaScriptExceptionMessage"))) -- if (auto s = objc::getString (message); ! s.empty()) -- return s; -- -- return objc::getString (objc::call (nsError, "localizedDescription")); -- } -- -- return {}; -- } -- -- void onResourceRequested (id task) -- { -- using namespace choc::objc; -- CHOC_AUTORELEASE_BEGIN -- -- try -- { -- id requestUrl = call (call (task, "request"), "URL"); -- -- auto makeResponse = [&] (auto responseCode, id headerFields) -- { -- return call (call (call (getClass ("NSHTTPURLResponse"), "alloc"), -- "initWithURL:statusCode:HTTPVersion:headerFields:", -- requestUrl, -- responseCode, -- getNSString ("HTTP/1.1"), -- headerFields), -- "autorelease"); -- }; -- -- auto path = objc::getString (call (requestUrl, "path")); -- -- if (auto resource = options->fetchResource (path)) -- { -- const auto& [bytes, mimeType] = *resource; -- -- auto contentLength = std::to_string (bytes.size()); -- id headerKeys[] = { getNSString ("Content-Length"), getNSString ("Content-Type"), getNSString ("Cache-Control"), getNSString ("Access-Control-Allow-Origin") }; -- id headerObjects[] = { getNSString (contentLength), getNSString (mimeType), getNSString ("no-store") , getNSString ("*") }; -- -- id headerFields = call (getClass ("NSDictionary"), "dictionaryWithObjects:forKeys:count:", -- headerObjects, headerKeys, sizeof (headerObjects) / sizeof (id)); -- -- call (task, "didReceiveResponse:", makeResponse (200, headerFields)); -- -- id data = call (getClass ("NSData"), "dataWithBytes:length:", bytes.data(), bytes.size()); -- call (task, "didReceiveData:", data); -- } -- else -- { -- call (task, "didReceiveResponse:", makeResponse (404, nullptr)); -- } -- -- call (task, "didFinish"); -- } -- catch (...) -- { -- id error = call (getClass ("NSError"), "errorWithDomain:code:userInfo:", -- getNSString ("NSURLErrorDomain"), -1, nullptr); -- -- call (task, "didFailWithError:", error); -- } -- -- CHOC_AUTORELEASE_END -- } -- -- BOOL sendAppAction (id self, const char* action) -- { -- objc::call (objc::getSharedNSApplication(), "sendAction:to:from:", -- sel_registerName (action), (id) nullptr, self); -- return true; -- } -- -- BOOL performKeyEquivalent (id self, id e) -- { -- enum -- { -- NSEventTypeKeyDown = 10, -- -- NSEventModifierFlagShift = 1 << 17, -- NSEventModifierFlagControl = 1 << 18, -- NSEventModifierFlagOption = 1 << 19, -- NSEventModifierFlagCommand = 1 << 20 -- }; -- -- if (objc::call (e, "type") == NSEventTypeKeyDown) -- { -- auto flags = objc::call (e, "modifierFlags") & (NSEventModifierFlagShift | NSEventModifierFlagCommand -- | NSEventModifierFlagControl | NSEventModifierFlagOption); -- -- auto path = objc::getString (objc::call (e, "charactersIgnoringModifiers")); -- -- if (flags == NSEventModifierFlagCommand) -- { -- if (path == "c") return sendAppAction (self, "copy:"); -- if (path == "x") return sendAppAction (self, "cut:"); -- if (path == "v") return sendAppAction (self, "paste:"); -- if (path == "z") return sendAppAction (self, "undo:"); -- if (path == "a") return sendAppAction (self, "selectAll:"); -- } -- else if (flags == (NSEventModifierFlagShift | NSEventModifierFlagCommand)) -- { -- if (path == "Z") return sendAppAction (self, "redo:"); -- } -- } -- -- return false; -- } -- -- void handleError (id error) -- { -- static constexpr int NSURLErrorCancelled = -999; -- -- if (objc::call (error, "code") == NSURLErrorCancelled) -- return; -- -- setHTML ("Error" -- "

" + getMessageFromNSError (error) + "

"); -- } -- -- static Pimpl* getPimpl (id self) -- { -- return (CHOC_OBJC_CAST_BRIDGED Pimpl*) (objc_getAssociatedObject (self, "choc_webview")); -- } -- -- WebView& owner; -- // NB: this is a pointer because making it a member forces the alignment of this Pimpl class -- // to 16, which then conflicts with obj-C pointer alignment... -- std::unique_ptr options; -- id webview = {}, manager = {}, delegate = {}; -- std::string defaultURI; -- -- struct WebviewClass -- { -- WebviewClass() -- { -- webviewClass = choc::objc::createDelegateClass ("WKWebView", "CHOCWebView_"); -- -- class_addMethod (webviewClass, sel_registerName ("acceptsFirstMouse:"), -- (IMP) (+[](id self, SEL, id) -> BOOL -- { -- if (auto p = getPimpl (self)) -- return p->options->acceptsFirstMouseClick; -- -- return false; -- }), "B@:@"); -- -- class_addMethod (webviewClass, sel_registerName ("performKeyEquivalent:"), -- (IMP) (+[](id self, SEL, id e) -> BOOL -- { -- if (auto p = getPimpl (self)) -- return p->performKeyEquivalent (self, e); -- -- return false; -- }), "B@:@"); -- -- objc_registerClassPair (webviewClass); -- } -- -- ~WebviewClass() -- { -- // NB: it doesn't seem possible to dispose of this class late enough to avoid a warning on shutdown -- // about the KVO system still using it, so unfortunately the only option seems to be to let it leak.. -- // objc_disposeClassPair (webviewClass); -- } -- -- Class webviewClass = {}; -- }; -- -- struct DelegateClass -- { -- DelegateClass() -- { -- using namespace choc::objc; -- delegateClass = createDelegateClass ("NSObject", "CHOCWebViewDelegate_"); -- -- class_addMethod (delegateClass, sel_registerName ("userContentController:didReceiveScriptMessage:"), -- (IMP) (+[](id self, SEL, id, id msg) -- { -- if (auto p = getPimpl (self)) -- p->owner.invokeBinding (objc::getString (call (msg, "body"))); -- }), -- "v@:@@"); -- -- class_addMethod (delegateClass, sel_registerName ("webView:startURLSchemeTask:"), -- (IMP) (+[](id self, SEL, id, id task) -- { -- if (auto p = getPimpl (self)) -- p->onResourceRequested (task); -- }), -- "v@:@@"); -- -- class_addMethod (delegateClass, sel_registerName ("webView:didFailProvisionalNavigation:withError:"), -- (IMP) (+[](id self, SEL, id, id, id error) -- { -- if (auto p = getPimpl (self)) -- p->handleError (error); -- }), -- "v@:@@@"); -- -- class_addMethod (delegateClass, sel_registerName ("webView:didFailNavigation:withError:"), -- (IMP) (+[](id self, SEL, id, id, id error) -- { -- if (auto p = getPimpl (self)) -- p->handleError (error); -- }), -- "v@:@@@"); -- -- class_addMethod (delegateClass, sel_registerName ("webView:stopURLSchemeTask:"), (IMP) (+[](id, SEL, id, id) {}), "v@:@@"); -- -- class_addMethod (delegateClass, sel_registerName ("webView:runOpenPanelWithParameters:initiatedByFrame:completionHandler:"), -- (IMP) (+[](id, SEL, id wkwebview, id params, id /*frame*/, void (^completionHandler)(id)) -- { -- CHOC_AUTORELEASE_BEGIN -- id panel = call (getClass ("NSOpenPanel"), "openPanel"); -- -- auto allowsMultipleSelection = call (params, "allowsMultipleSelection"); -- id allowedFileExtensions = call (params, "_allowedFileExtensions"); -- id window = call (wkwebview, "window"); -- -- call (panel, "setAllowsMultipleSelection:", allowsMultipleSelection); -- call (panel, "setAllowedFileTypes:", allowedFileExtensions); -- -- call (panel, "beginSheetModalForWindow:completionHandler:", window, -- ^(long result) -- { -- CHOC_AUTORELEASE_BEGIN -- if (result == 1) // NSModalResponseOK -- completionHandler (call (panel, "URLs")); -- else -- completionHandler (nil); -- CHOC_AUTORELEASE_END -- }); -- CHOC_AUTORELEASE_END -- }), "v@:@@@@"); -- -- objc_registerClassPair (delegateClass); -- } -- -- ~DelegateClass() -- { -- objc_disposeClassPair (delegateClass); -- } -- -- Class delegateClass = {}; -- }; -- -- static constexpr long WKUserScriptInjectionTimeAtDocumentStart = 0; -- -- // Including CodeGraphics.h can create all kinds of messy C/C++ symbol clashes -- // with other headers, but all we actually need are these coordinate structs: -- #if defined (__LP64__) && __LP64__ -- using CGFloat = double; -- #else -- using CGFloat = float; -- #endif -- -- struct CGPoint { CGFloat x = 0, y = 0; }; -- struct CGSize { CGFloat width = 0, height = 0; }; -- struct CGRect { CGPoint origin; CGSize size; }; --}; -- --//============================================================================== --#elif CHOC_WINDOWS -- --#include "../platform/choc_DynamicLibrary.h" -- --// If you want to supply your own mechanism for finding the Microsoft --// Webview2Loader.dll file, then define the CHOC_FIND_WEBVIEW2LOADER_DLL --// macro, which must evaluate to a choc::file::DynamicLibrary object --// which points to the DLL. --#ifndef CHOC_FIND_WEBVIEW2LOADER_DLL -- #define CHOC_USE_INTERNAL_WEBVIEW_DLL 1 -- #define CHOC_FIND_WEBVIEW2LOADER_DLL choc::ui::getWebview2LoaderDLL() -- #include "../platform/choc_MemoryDLL.h" -- namespace choc::ui -- { -- using WebViewDLL = choc::memory::MemoryDLL; -- static WebViewDLL getWebview2LoaderDLL(); -- } --#else -- namespace choc::ui -- { -- using WebViewDLL = choc::file::DynamicLibrary; -- } --#endif -- -+#include "choc_DynamicLibrary.h" -+#include "choc_MemoryDLL.h" - #include "choc_DesktopWindow.h" - -+START_NAMESPACE_DISTRHO -+static MemoryDLL getWebview2LoaderDLL(); -+END_NAMESPACE_DISTRHO -+ - #ifndef __webview2_h__ - #define __webview2_h__ - -@@ -1268,8 +473,7 @@ public: - - #endif // __webview2_h__ - --namespace choc::ui --{ -+START_NAMESPACE_DISTRHO - - //============================================================================== - struct WebView::Pimpl -@@ -1277,10 +481,7 @@ struct WebView::Pimpl - Pimpl (WebView& v, const Options& opts) - : owner (v), options (opts) - { -- // You cam define this macro to provide a custom way of getting a -- // choc::file::DynamicLibrary that contains the redistributable -- // Microsoft WebView2Loader.dll -- webviewDLL = CHOC_FIND_WEBVIEW2LOADER_DLL; -+ webviewDLL = getWebview2LoaderDLL(); - - if (! webviewDLL) - return; -@@ -1290,9 +491,6 @@ struct WebView::Pimpl - if (hwnd.hwnd == nullptr) - return; - -- defaultURI = getURIHome (options); -- setHTMLURI = defaultURI + "getHTMLInternal"; -- - SetWindowLongPtr (hwnd, GWLP_USERDATA, (LONG_PTR) this); - - if (createEmbeddedWebView()) -@@ -1304,8 +502,6 @@ struct WebView::Pimpl - - ~Pimpl() - { -- deletionChecker->deleted = true; -- - if (coreWebView != nullptr) - { - coreWebView->Release(); -@@ -1327,52 +523,30 @@ struct WebView::Pimpl - hwnd.reset(); - } - -- static constexpr const char* postMessageFn = "window.chrome.webview.postMessage"; -- - bool loadedOK() const { return coreWebView != nullptr; } - void* getViewHandle() const { return (void*) hwnd.hwnd; } - -- std::shared_ptr deletionChecker { std::make_shared() }; -- - bool navigate (const std::string& url) - { -- if (url.empty()) -- return navigate (defaultURI); -- -- CHOC_ASSERT (coreWebView != nullptr); -+ DISTRHO_SAFE_ASSERT_RETURN (coreWebView != nullptr, false); - return coreWebView->Navigate (createUTF16StringFromUTF8 (url).c_str()) == S_OK; - } - - bool addInitScript (const std::string& script) - { -- CHOC_ASSERT (coreWebView != nullptr); -+ DISTRHO_SAFE_ASSERT_RETURN (coreWebView != nullptr, false); - return coreWebView->AddScriptToExecuteOnDocumentCreated (createUTF16StringFromUTF8 (script).c_str(), nullptr) == S_OK; - } - -- bool evaluateJavascript (const std::string& script, CompletionHandler&& ch) -- { -- if (coreWebView == nullptr) -- return false; -- -- COMPtr callback (ch ? new ExecuteScriptCompletedCallback (std::move (ch)) -- : nullptr); -- -- return coreWebView->ExecuteScript (createUTF16StringFromUTF8 (script).c_str(), callback) == S_OK; -- } -- -- bool setHTML (const std::string& html) -+ bool evaluateJavascript (const std::string& script) - { -- CHOC_ASSERT (coreWebView != nullptr); -- pageHTML = { html, "text/html" }; -- navigate (setHTMLURI); -- return true; -+ DISTRHO_SAFE_ASSERT_RETURN (coreWebView != nullptr, false); -+ return coreWebView->ExecuteScript (createUTF16StringFromUTF8 (script).c_str(), nullptr) == S_OK; - } - - private: - WindowClass windowClass { L"CHOCWebView", (WNDPROC) wndProc }; - HWNDHolder hwnd; -- std::string defaultURI, setHTMLURI; -- WebView::Options::Resource pageHTML; - - //============================================================================== - template -@@ -1404,7 +578,7 @@ private: - return message; - } - -- return choc::text::createHexString (hr); -+ return createHexString (hr); - } - - static Pimpl* getPimpl (HWND h) { return (Pimpl*) GetWindowLongPtr (h, GWLP_USERDATA); } -@@ -1463,15 +637,9 @@ private: - if (coreWebView == nullptr) - return false; - -- const auto wildcardFilter = createUTF16StringFromUTF8 (defaultURI + "*"); -- coreWebView->AddWebResourceRequestedFilter (wildcardFilter.c_str(), COREWEBVIEW2_WEB_RESOURCE_CONTEXT_ALL); -- - EventRegistrationToken token; - coreWebView->add_WebResourceRequested (handler, std::addressof (token)); - -- if (options.fetchResource) -- navigate ({}); -- - ICoreWebView2Settings* settings = nullptr; - - if (coreWebView->get_Settings (std::addressof (settings)) == S_OK -@@ -1526,14 +694,6 @@ private: - webviewInitialising.clear(); - } - -- std::optional fetchResourceOrPageHTML (const std::string& uri) -- { -- if (uri == setHTMLURI) -- return pageHTML; -- -- return options.fetchResource (uri.substr (defaultURI.size() - 1)); -- } -- - HRESULT onResourceRequested (ICoreWebView2WebResourceRequestedEventArgs* args) - { - struct ScopedExit -@@ -1579,42 +739,8 @@ private: - ICoreWebView2WebResourceResponse* response = {}; - ScopedExit cleanupResponse (makeCleanupIUnknown (response)); - -- if (const auto resource = fetchResourceOrPageHTML (createUTF8FromUTF16 (uri))) -- { -- const auto makeMemoryStream = [](const auto* data, auto length) -> IStream* -- { -- choc::file::DynamicLibrary lib ("shlwapi.dll"); -- using SHCreateMemStreamFn = IStream*(__stdcall *)(const BYTE*, UINT); -- auto fn = reinterpret_cast (lib.findFunction ("SHCreateMemStream")); -- return fn ? fn (data, length) : nullptr; -- }; -- -- auto* stream = makeMemoryStream (reinterpret_cast (resource->data.data()), -- static_cast (resource->data.size())); -- -- if (stream == nullptr) -- return E_FAIL; -- -- ScopedExit cleanupStream (makeCleanupIUnknown (stream)); -- -- std::vector headers; -- headers.emplace_back ("Content-Type: " + resource->mimeType); -- headers.emplace_back ("Cache-Control: no-store"); -- headers.emplace_back ("Access-Control-Allow-Origin: *"); -- -- if (! options.customUserAgent.empty()) -- headers.emplace_back ("User-Agent: " + options.customUserAgent); -- -- const auto headerString = createUTF16StringFromUTF8 (choc::text::joinStrings (headers, "\n")); -- -- if (coreWebViewEnvironment->CreateWebResourceResponse (stream, 200, L"OK", headerString.c_str(), std::addressof (response)) != S_OK) -- return E_FAIL; -- } -- else -- { -- if (coreWebViewEnvironment->CreateWebResourceResponse (nullptr, 404, L"Not Found", nullptr, std::addressof (response)) != S_OK) -- return E_FAIL; -- } -+ if (coreWebViewEnvironment->CreateWebResourceResponse (nullptr, 404, L"Not Found", nullptr, std::addressof (response)) != S_OK) -+ return E_FAIL; - - if (args->put_Response (response) != S_OK) - return E_FAIL; -@@ -1708,58 +834,9 @@ private: - std::atomic refCount { 0 }; - }; - -- //============================================================================== -- struct ExecuteScriptCompletedCallback : public ICoreWebView2ExecuteScriptCompletedHandler -- { -- ExecuteScriptCompletedCallback (CompletionHandler&& cb) : callback (std::move (cb)) {} -- virtual ~ExecuteScriptCompletedCallback() {} -- -- HRESULT STDMETHODCALLTYPE QueryInterface (REFIID refID, void** result) override -- { -- if (refID == IID { 0x49511172, 0xcc67, 0x4bca, { 0x99, 0x23, 0x13, 0x71, 0x12, 0xf4, 0xc4, 0xcc } } -- || refID == IID_IUnknown) -- { -- *result = this; -- AddRef(); -- return S_OK; -- } -- -- *result = nullptr; -- return E_NOINTERFACE; -- } -- -- ULONG STDMETHODCALLTYPE AddRef() override { return ++refCount; } -- ULONG STDMETHODCALLTYPE Release() override { auto newCount = --refCount; if (newCount == 0) delete this; return newCount; } -- -- HRESULT STDMETHODCALLTYPE Invoke (HRESULT hr, LPCWSTR resultJSON) override -- { -- std::string errorMessage = getMessageFromHRESULT (hr); -- choc::value::Value value; -- -- if (resultJSON != nullptr) -- { -- try -- { -- if (auto json = createUTF8FromUTF16 (std::wstring (resultJSON)); ! json.empty()) -- value = choc::json::parseValue (json); -- } -- catch (const std::exception& e) -- { -- errorMessage = e.what(); -- } -- } -- -- callback (errorMessage, value); -- return S_OK; -- } -- -- CompletionHandler callback; -- std::atomic refCount { 0 }; -- }; -- - //============================================================================== - WebView& owner; -- WebViewDLL webviewDLL; -+ MemoryDLL webviewDLL; - Options options; - ICoreWebView2Environment* coreWebViewEnvironment = nullptr; - ICoreWebView2* coreWebView = nullptr; -@@ -1793,15 +870,6 @@ private: - } - }; - --} // namespace choc::ui -- --#else -- #error "choc WebView only supports OSX, Windows or Linux!" --#endif -- --namespace choc::ui --{ -- - //============================================================================== - inline WebView::WebView() : WebView (Options()) {} - -@@ -1820,137 +888,30 @@ inline WebView::~WebView() - - inline bool WebView::loadedOK() const { return pimpl != nullptr; } - inline bool WebView::navigate (const std::string& url) { return pimpl != nullptr && pimpl->navigate (url); } --inline bool WebView::setHTML (const std::string& html) { return pimpl != nullptr && pimpl->setHTML (html); } - inline bool WebView::addInitScript (const std::string& script) { return pimpl != nullptr && pimpl->addInitScript (script); } - --inline bool WebView::evaluateJavascript (const std::string& script, CompletionHandler completionHandler) -+inline bool WebView::evaluateJavascript (const std::string& script) - { -- return pimpl != nullptr && pimpl->evaluateJavascript (script, std::move (completionHandler)); -+ return pimpl != nullptr && pimpl->evaluateJavascript (script); - } - - inline void* WebView::getViewHandle() const { return pimpl != nullptr ? pimpl->getViewHandle() : nullptr; } - --inline bool WebView::bind (const std::string& functionName, CallbackFn&& fn) -+inline bool WebView::bind (CallbackFn&& fn) - { - if (pimpl == nullptr) - return false; - -- static constexpr std::string_view scriptTemplate = R"((function() { --const fnBinding = window._fnBindings = (window._fnBindings || { messageID: 1 }); -- --window["FUNCTION_NAME"] = function() --{ -- const messageID = ++fnBinding.messageID; -- const promise = new Promise((resolve, reject) => { fnBinding[messageID] = { resolve, reject }; }); -- -- const args = JSON.stringify ({ id: messageID, -- fn: "FUNCTION_NAME", -- params: Array.prototype.slice.call (arguments) -- }, -- (key, value) => typeof value === 'bigint' ? value.toString() : value); -- INVOKE_BINDING (args); -- return promise; --} --})())"; -- -- auto script = choc::text::replace (scriptTemplate, "FUNCTION_NAME", functionName, -- "INVOKE_BINDING", Pimpl::postMessageFn); -- -- if (addInitScript (script) -- && evaluateJavascript (script)) -- { -- bindings[functionName] = std::move (fn); -- return true; -- } -- -- return false; --} -- --inline bool WebView::unbind (const std::string& functionName) --{ -- if (auto found = bindings.find (functionName); found != bindings.end()) -- { -- evaluateJavascript ("delete window[\"" + functionName + "\"];"); -- bindings.erase (found); -- return true; -- } -- -- return false; -+ binding = std::move (fn); -+ return true; - } - - inline void WebView::invokeBinding (const std::string& msg) - { -- try -- { -- auto json = choc::json::parse (msg); -- auto b = bindings.find (std::string (json["fn"].getString())); -- auto callbackID = json["id"].getWithDefault(0); -- -- if (callbackID == 0 || b == bindings.end()) -- return; -- -- auto callbackItem = "window._fnBindings[" + std::to_string (callbackID) + "]"; -- -- try -- { -- auto deletionChecker = pimpl->deletionChecker; -- auto result = b->second (json["params"]); -- -- if (deletionChecker->deleted) // in case the WebView was deleted during the callback -- return; -- -- auto call = callbackItem + ".resolve(" + choc::json::toString (result) + "); delete " + callbackItem + ";"; -- evaluateJavascript (call); -- return; -- } -- catch (const std::exception&) -- {} -- -- auto call = callbackItem + ".reject(); delete " + callbackItem + ";"; -- evaluateJavascript (call); -- } -- catch (const std::exception&) -- {} --} -- --inline std::string WebView::getURIHome (const Options& options) --{ -- if (! options.customSchemeURI.empty()) -- { -- if (choc::text::endsWith (options.customSchemeURI, "/")) -- return options.customSchemeURI; -- -- return options.customSchemeURI + "/"; -- } -- -- #if CHOC_WINDOWS -- return "https://choc.localhost/"; -- #else -- return "choc://choc.choc/"; -- #endif --} -- --inline std::string WebView::getURIScheme (const Options& options) --{ -- auto uri = getURIHome (options); -- auto colon = uri.find (":"); -- CHOC_ASSERT (colon != std::string::npos && colon != 0); // need to provide a valid URI with a scheme at the start. -- return uri.substr (0, colon); --} -- --inline WebView::Options::Resource::Resource (std::string_view content, std::string mime) --{ -- if (! content.empty()) -- { -- auto src = content.data(); -- data.insert (data.end(), src, src + content.length()); -- } -- -- mimeType = std::move (mime); -+ binding(msg); - } - --} // namespace choc::ui -- -+END_NAMESPACE_DISTRHO - - //============================================================================== - //============================================================================== -@@ -2035,7 +996,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - )") - #endif - --inline choc::ui::WebViewDLL choc::ui::getWebview2LoaderDLL() -+inline DISTRHO_NAMESPACE::MemoryDLL DISTRHO_NAMESPACE::getWebview2LoaderDLL() - { - // This is version 1.0.2365.46 - -@@ -5798,7 +4759,7 @@ inline choc::ui::WebViewDLL choc::ui::getWebview2LoaderDLL() - }; - #endif - -- return choc::memory::MemoryDLL (dllData, sizeof (dllData)); -+ return DISTRHO_NAMESPACE::MemoryDLL (dllData, sizeof (dllData)); - } - - #endif diff --git a/dpf/distrho/extra/choc/choc_DesktopWindow.h b/dpf/distrho/extra/choc/choc_DesktopWindow.h deleted file mode 100644 index 55e7305..0000000 --- a/dpf/distrho/extra/choc/choc_DesktopWindow.h +++ /dev/null @@ -1,154 +0,0 @@ -// -// ██████ ██  ██  ██████  ██████ -// ██      ██  ██ ██    ██ ██       ** Classy Header-Only Classes ** -// ██  ███████ ██  ██ ██ -// ██  ██   ██ ██  ██ ██ https://github.com/Tracktion/choc -//  ██████ ██  ██  ██████   ██████ -// -// CHOC is (C)2022 Tracktion Corporation, and is offered under the terms of the ISC license: -// -// Permission to use, copy, modify, and/or distribute this software for any purpose with or -// without fee is hereby granted, provided that the above copyright notice and this permission -// notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -// WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -// AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -// CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -// WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -#ifndef CHOC_DESKTOPWINDOW_HEADER_INCLUDED -#define CHOC_DESKTOPWINDOW_HEADER_INCLUDED - -#include "choc_Platform.h" - -//============================================================================== -// _ _ _ _ -// __| | ___ | |_ __ _ (_)| | ___ -// / _` | / _ \| __| / _` || || |/ __| -// | (_| || __/| |_ | (_| || || |\__ \ _ _ _ -// \__,_| \___| \__| \__,_||_||_||___/(_)(_)(_) -// -// Code beyond this point is implementation detail... -// -//============================================================================== - -#undef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#undef NOMINMAX -#define NOMINMAX -#define Rectangle Rectangle_renamed_to_avoid_name_collisions -#include -#undef Rectangle - -START_NAMESPACE_DISTRHO - -struct HWNDHolder -{ - HWNDHolder() = default; - HWNDHolder (HWND h) : hwnd (h) {} - HWNDHolder (const HWNDHolder&) = delete; - HWNDHolder& operator= (const HWNDHolder&) = delete; - HWNDHolder (HWNDHolder&& other) : hwnd (other.hwnd) { other.hwnd = {}; } - HWNDHolder& operator= (HWNDHolder&& other) { reset(); hwnd = other.hwnd; other.hwnd = {}; return *this; } - ~HWNDHolder() { reset(); } - - operator HWND() const { return hwnd; } - operator void*() const { return (void*) hwnd; } - - void reset() { if (IsWindow (hwnd)) DestroyWindow (hwnd); hwnd = {}; } - - HWND hwnd = {}; -}; - -struct WindowClass -{ - WindowClass (std::wstring name, WNDPROC wndProc) - { - name += std::to_wstring (static_cast (GetTickCount())); - - moduleHandle = GetModuleHandle (nullptr); - auto icon = (HICON) LoadImage (moduleHandle, IDI_APPLICATION, IMAGE_ICON, - GetSystemMetrics (SM_CXSMICON), - GetSystemMetrics (SM_CYSMICON), - LR_DEFAULTCOLOR); - - WNDCLASSEXW wc; - ZeroMemory (&wc, sizeof(wc)); - wc.cbSize = sizeof(wc); - wc.style = CS_OWNDC; - wc.hInstance = moduleHandle; - wc.lpszClassName = name.c_str(); - wc.hIcon = icon; - wc.hIconSm = icon; - wc.lpfnWndProc = wndProc; - - classAtom = (LPCWSTR) (uintptr_t) RegisterClassExW (&wc); - DISTRHO_SAFE_ASSERT (classAtom != 0); - } - - ~WindowClass() - { - UnregisterClassW (classAtom, moduleHandle); - } - - HWNDHolder createWindow (DWORD style, int w, int h, void* userData) - { - if (auto hwnd = CreateWindowW (classAtom, L"", style, CW_USEDEFAULT, CW_USEDEFAULT, - w, h, nullptr, nullptr, moduleHandle, nullptr)) - { - SetWindowLongPtr (hwnd, GWLP_USERDATA, (LONG_PTR) userData); - return hwnd; - } - - return {}; - } - - auto getClassName() const { return classAtom; } - - HINSTANCE moduleHandle = {}; - LPCWSTR classAtom = {}; -}; - -static std::string createUTF8FromUTF16 (const std::wstring& utf16) -{ - if (! utf16.empty()) - { - auto numWideChars = static_cast (utf16.size()); - auto resultSize = WideCharToMultiByte (CP_UTF8, WC_ERR_INVALID_CHARS, utf16.data(), numWideChars, nullptr, 0, nullptr, nullptr); - - if (resultSize > 0) - { - std::string result; - result.resize (static_cast (resultSize)); - - if (WideCharToMultiByte (CP_UTF8, WC_ERR_INVALID_CHARS, utf16.data(), numWideChars, result.data(), resultSize, nullptr, nullptr) > 0) - return result; - } - } - - return {}; -} - -static std::wstring createUTF16StringFromUTF8 (std::string_view utf8) -{ - if (! utf8.empty()) - { - auto numUTF8Bytes = static_cast (utf8.size()); - auto resultSize = MultiByteToWideChar (CP_UTF8, MB_ERR_INVALID_CHARS, utf8.data(), numUTF8Bytes, nullptr, 0); - - if (resultSize > 0) - { - std::wstring result; - result.resize (static_cast (resultSize)); - - if (MultiByteToWideChar (CP_UTF8, MB_ERR_INVALID_CHARS, utf8.data(), numUTF8Bytes, result.data(), resultSize) > 0) - return result; - } - } - - return {}; -} - -END_NAMESPACE_DISTRHO - -#endif // CHOC_DESKTOPWINDOW_HEADER_INCLUDED diff --git a/dpf/distrho/extra/choc/choc_DynamicLibrary.h b/dpf/distrho/extra/choc/choc_DynamicLibrary.h deleted file mode 100644 index ef8c282..0000000 --- a/dpf/distrho/extra/choc/choc_DynamicLibrary.h +++ /dev/null @@ -1,141 +0,0 @@ -// -// ██████ ██  ██  ██████  ██████ -// ██      ██  ██ ██    ██ ██       ** Classy Header-Only Classes ** -// ██  ███████ ██  ██ ██ -// ██  ██   ██ ██  ██ ██ https://github.com/Tracktion/choc -//  ██████ ██  ██  ██████   ██████ -// -// CHOC is (C)2022 Tracktion Corporation, and is offered under the terms of the ISC license: -// -// Permission to use, copy, modify, and/or distribute this software for any purpose with or -// without fee is hereby granted, provided that the above copyright notice and this permission -// notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -// WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -// AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -// CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -// WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -#ifndef CHOC_DYNAMIC_LIBRARY_HEADER_INCLUDED -#define CHOC_DYNAMIC_LIBRARY_HEADER_INCLUDED - -#include - -START_NAMESPACE_DISTRHO - -//============================================================================== -/** - A minimal cross-platform loader for .dll/.so files. -*/ -struct DynamicLibrary -{ - DynamicLibrary() = default; - - /// Attempts to load a library with the given name or path. - DynamicLibrary (std::string_view library); - - DynamicLibrary (const DynamicLibrary&) = delete; - DynamicLibrary& operator= (const DynamicLibrary&) = delete; - DynamicLibrary (DynamicLibrary&&); - DynamicLibrary& operator= (DynamicLibrary&&); - - /// On destruction, this object releases the library that was loaded - ~DynamicLibrary(); - - /// Returns a pointer to the function with this name, or nullptr if not found. - void* findFunction (std::string_view functionName); - - /// Returns true if the library was successfully loaded - operator bool() const noexcept { return handle != nullptr; } - - /// Releases any handle that this object is holding - void close(); - - /// platform-specific handle. Will be nullptr if not loaded - void* handle = nullptr; -}; - - - -//============================================================================== -// _ _ _ _ -// __| | ___ | |_ __ _ (_)| | ___ -// / _` | / _ \| __| / _` || || |/ __| -// | (_| || __/| |_ | (_| || || |\__ \ _ _ _ -// \__,_| \___| \__| \__,_||_||_||___/(_)(_)(_) -// -// Code beyond this point is implementation detail... -// -//============================================================================== - -inline DynamicLibrary::~DynamicLibrary() -{ - close(); -} - -inline DynamicLibrary::DynamicLibrary (DynamicLibrary&& other) : handle (other.handle) -{ - other.handle = nullptr; -} - -inline DynamicLibrary& DynamicLibrary::operator= (DynamicLibrary&& other) -{ - close(); - handle = other.handle; - other.handle = nullptr; - return *this; -} - -//============================================================================== -namespace win32_defs -{ -#if ! (defined (_WINDOWS_) || defined (_APISETLIBLOADER_)) // only use these local definitions if windows.h isn't already included - using CHOC_HMODULE = void*; - #ifdef _MSC_VER - extern "C" CHOC_HMODULE __stdcall choc_LoadLibraryA (const char*); - extern "C" int __stdcall choc_FreeLibrary (CHOC_HMODULE); - extern "C" void* __stdcall choc_GetProcAddress (CHOC_HMODULE, const char*); - #pragma comment(linker,"/alternatename:choc_LoadLibraryA=LoadLibraryA") - #pragma comment(linker,"/alternatename:choc_FreeLibrary=FreeLibrary") - #pragma comment(linker,"/alternatename:choc_GetProcAddress=GetProcAddress") - static inline CHOC_HMODULE LoadLibraryA (const char* l) { return choc_LoadLibraryA (l); } - static inline int FreeLibrary (CHOC_HMODULE m) { return choc_FreeLibrary (m); } - static inline void* GetProcAddress (CHOC_HMODULE m, const char* f) { return choc_GetProcAddress (m, f); } - #else - extern "C" __declspec(dllimport) CHOC_HMODULE __stdcall LoadLibraryA (const char*); - extern "C" __declspec(dllimport) int __stdcall FreeLibrary (CHOC_HMODULE); - extern "C" __declspec(dllimport) void* __stdcall GetProcAddress (CHOC_HMODULE, const char*); - #endif -#else - using CHOC_HMODULE = HMODULE; - static inline CHOC_HMODULE LoadLibraryA (const char* l) { return ::LoadLibraryA (l); } - static inline int FreeLibrary (CHOC_HMODULE m) { return ::FreeLibrary (m); } - static inline void* GetProcAddress (CHOC_HMODULE m, const char* f) { return (void*) ::GetProcAddress (m, f); } -#endif -} - -inline DynamicLibrary::DynamicLibrary (std::string_view library) -{ - handle = (void*) win32_defs::LoadLibraryA (std::string (library).c_str()); -} - -inline void DynamicLibrary::close() -{ - if (handle != nullptr) - { - win32_defs::FreeLibrary ((win32_defs::CHOC_HMODULE) handle); - handle = nullptr; - } -} - -inline void* DynamicLibrary::findFunction (std::string_view name) -{ - if (handle != nullptr) - return (void*) win32_defs::GetProcAddress ((win32_defs::CHOC_HMODULE) handle, std::string (name).c_str()); - - return {}; -} - -END_NAMESPACE_DISTRHO - -#endif // CHOC_DYNAMIC_LIBRARY_HEADER_INCLUDED diff --git a/dpf/distrho/extra/choc/choc_MemoryDLL.h b/dpf/distrho/extra/choc/choc_MemoryDLL.h deleted file mode 100644 index f60eea1..0000000 --- a/dpf/distrho/extra/choc/choc_MemoryDLL.h +++ /dev/null @@ -1,511 +0,0 @@ -// -// ██████ ██  ██  ██████  ██████ -// ██      ██  ██ ██    ██ ██       ** Classy Header-Only Classes ** -// ██  ███████ ██  ██ ██ -// ██  ██   ██ ██  ██ ██ https://github.com/Tracktion/choc -//  ██████ ██  ██  ██████   ██████ -// -// CHOC is (C)2022 Tracktion Corporation, and is offered under the terms of the ISC license: -// -// Permission to use, copy, modify, and/or distribute this software for any purpose with or -// without fee is hereby granted, provided that the above copyright notice and this permission -// notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -// WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -// AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -// CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -// WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -#ifndef CHOC_MEMORYDLL_HEADER_INCLUDED -#define CHOC_MEMORYDLL_HEADER_INCLUDED - -#include -#include -#include - -START_NAMESPACE_DISTRHO - -/** - MemoryDLL is an egregious hack that allows you to load DLL files from a chunk - of memory in the same way you might load them from a file on disk. - - This opens up the ability to do horrible things such as embedding a random DLL - in a chunk of C++ code, so that it gets baked directly into your executable.. - That means that if your app requires a 3rd-party DLL but you don't want the hassle - of having to install the DLL file in the right place on your users' machines, you - could use this trick to embed it invisibly inside your executable... - - Currently this is only implemented for Windows DLLs, but a linux/OSX loader for - .dylibs is also totally feasible if anyone fancies having a go :) - - @see DynamicLibrary -*/ -struct MemoryDLL -{ - MemoryDLL() = default; - MemoryDLL (MemoryDLL&&) = default; - MemoryDLL& operator= (MemoryDLL&&) = default; - ~MemoryDLL(); - - /// Attempts to load a chunk of memory that contains a DLL file image. - MemoryDLL (const void* data, size_t size); - - /// Returns a pointer to the function with this name, or nullptr if not found. - void* findFunction (std::string_view functionName); - - /// Returns true if the library was successfully loaded - operator bool() const { return pimpl != nullptr; } - -private: - struct Pimpl; - std::unique_ptr pimpl; -}; - -END_NAMESPACE_DISTRHO - - - -//============================================================================== -// _ _ _ _ -// __| | ___ | |_ __ _ (_)| | ___ -// / _` | / _ \| __| / _` || || |/ __| -// | (_| || __/| |_ | (_| || || |\__ \ _ _ _ -// \__,_| \___| \__| \__,_||_||_||___/(_)(_)(_) -// -// Code beyond this point is implementation detail... -// -//============================================================================== - -#include -#include -#undef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#undef NOMINMAX -#define NOMINMAX -#define Rectangle Rectangle_renamed_to_avoid_name_collisions -#include -#undef Rectangle - -START_NAMESPACE_DISTRHO - -struct MemoryDLL::Pimpl -{ - Pimpl() = default; - - ~Pimpl() - { - if (entryFunction != nullptr) - (*reinterpret_cast (entryFunction)) ((HINSTANCE) imageData, DLL_PROCESS_DETACH, nullptr); - - for (auto& m : loadedModules) - FreeLibrary (m); - - if (imageData != nullptr) - VirtualFree (imageData, 0, MEM_RELEASE); - - for (auto m : virtualBlocks) - VirtualFree (m, 0, MEM_RELEASE); - } - - bool initialise (const void* data, size_t size) - { - if (size < sizeof (IMAGE_DOS_HEADER)) - return false; - - auto dosHeader = static_cast (data); - - if (dosHeader->e_magic != IMAGE_DOS_SIGNATURE - || size < static_cast (dosHeader->e_lfanew) + sizeof (IMAGE_NT_HEADERS)) - return false; - - const auto& headers = *getOffsetAs (data, dosHeader->e_lfanew); - - if (headers.Signature != IMAGE_NT_SIGNATURE - || (headers.OptionalHeader.SectionAlignment & 1) != 0) - return false; - - #ifdef _M_ARM64 - if (headers.FileHeader.Machine != IMAGE_FILE_MACHINE_ARM64) return false; - #elif defined (_WIN64) - if (headers.FileHeader.Machine != IMAGE_FILE_MACHINE_AMD64) return false; - #else - if (headers.FileHeader.Machine != IMAGE_FILE_MACHINE_I386) return false; - #endif - - SYSTEM_INFO systemInfo; - GetNativeSystemInfo (std::addressof (systemInfo)); - - auto alignedImageSize = roundUp (headers.OptionalHeader.SizeOfImage, systemInfo.dwPageSize); - - if (alignedImageSize != roundUp (getLastSectionEnd (headers), systemInfo.dwPageSize)) - return false; - - imageData = VirtualAlloc (reinterpret_cast (headers.OptionalHeader.ImageBase), - alignedImageSize, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE); - - if (imageData == nullptr) - { - imageData = VirtualAlloc (nullptr, alignedImageSize, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE); - - if (imageData == nullptr) - return false; - } - - while ((((uint64_t) imageData) >> 32) < (((uint64_t) imageData + alignedImageSize) >> 32)) - { - virtualBlocks.push_back (imageData); - imageData = VirtualAlloc (nullptr, alignedImageSize, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE); - - if (imageData == nullptr) - return false; - } - - isDLL = (headers.FileHeader.Characteristics & IMAGE_FILE_DLL) != 0; - pageSize = systemInfo.dwPageSize; - - if (size < headers.OptionalHeader.SizeOfHeaders) - return false; - - auto newHeaders = VirtualAlloc (imageData, headers.OptionalHeader.SizeOfHeaders, MEM_COMMIT, PAGE_READWRITE); - memcpy (newHeaders, dosHeader, headers.OptionalHeader.SizeOfHeaders); - imageHeaders = getOffsetAs (newHeaders, dosHeader->e_lfanew); - imageHeaders->OptionalHeader.ImageBase = reinterpret_cast (imageData); - - if (copySections (data, size, headers.OptionalHeader.SectionAlignment)) - { - if (auto locationDelta = (ptrdiff_t) (imageHeaders->OptionalHeader.ImageBase - headers.OptionalHeader.ImageBase)) - performRelocation (locationDelta); - - if (loadImports() && prepareSections()) - { - executeTLS(); - loadNameTable(); - - if (imageHeaders->OptionalHeader.AddressOfEntryPoint != 0) - { - entryFunction = getOffsetAs (imageData, imageHeaders->OptionalHeader.AddressOfEntryPoint); - - if (isDLL) - return (*reinterpret_cast (entryFunction)) ((HINSTANCE) imageData, DLL_PROCESS_ATTACH, nullptr); - - return true; - } - } - } - - return false; - } - - void* findFunction (std::string_view name) - { - if (auto found = exportedFunctionOffsets.find (std::string (name)); found != exportedFunctionOffsets.end()) - return getOffsetAs (imageData, found->second); - - return {}; - } - -private: - PIMAGE_NT_HEADERS imageHeaders = {}; - void* imageData = nullptr; - std::vector loadedModules; - uint32_t pageSize = 0; - bool isDLL = false; - std::vector virtualBlocks; - std::unordered_map exportedFunctionOffsets; - using DLLEntryFn = BOOL(WINAPI*)(HINSTANCE, DWORD, void*); - void* entryFunction = {}; - - template - static const Type* getOffsetAs (const void* address, Diff offset) - { - return reinterpret_cast (static_cast (address) + offset); - } - - template - static Type* getOffsetAs (void* address, Diff offset) - { - return reinterpret_cast (static_cast (address) + offset); - } - - template - Type* getDataDirectoryAddress (int type) const - { - auto& dd = imageHeaders->OptionalHeader.DataDirectory[type]; - - if (dd.Size > 0) - return getOffsetAs (imageData, dd.VirtualAddress); - - return {}; - } - - static size_t getLastSectionEnd (const IMAGE_NT_HEADERS& headers) - { - auto section = IMAGE_FIRST_SECTION (&headers); - auto optionalSectionSize = headers.OptionalHeader.SectionAlignment; - size_t lastSectionEnd = 0; - - for (uint32_t i = 0; i < headers.FileHeader.NumberOfSections; ++i, ++section) - { - auto end = section->VirtualAddress + (section->SizeOfRawData == 0 ? optionalSectionSize - : section->SizeOfRawData); - if (end > lastSectionEnd) - lastSectionEnd = end; - } - - return lastSectionEnd; - } - - void loadNameTable() - { - if (auto exports = getDataDirectoryAddress (IMAGE_DIRECTORY_ENTRY_EXPORT)) - { - if (exports->NumberOfNames > 0 && exports->NumberOfFunctions > 0) - { - auto name = getOffsetAs (imageData, exports->AddressOfNames); - auto ordinal = getOffsetAs (imageData, exports->AddressOfNameOrdinals); - - exportedFunctionOffsets.reserve (exports->NumberOfNames); - - for (size_t i = 0; i < exports->NumberOfNames; ++i, ++name, ++ordinal) - if (*ordinal <= exports->NumberOfFunctions) - exportedFunctionOffsets[std::string (getOffsetAs (imageData, *name))] - = getOffsetAs (imageData, exports->AddressOfFunctions)[*ordinal]; - } - } - } - - void executeTLS() - { - if (auto tls = getDataDirectoryAddress (IMAGE_DIRECTORY_ENTRY_TLS)) - if (auto callback = reinterpret_cast (tls->AddressOfCallBacks)) - while (*callback != nullptr) - (*callback++) ((void*) imageData, DLL_PROCESS_ATTACH, nullptr); - } - - bool prepareSections() - { - auto section = IMAGE_FIRST_SECTION (imageHeaders); - auto size = getSectionSize (*section); - auto address = getSectionAddress (*section); - auto addressPage = getPageBase (address); - auto characteristics = section->Characteristics; - - for (WORD i = 1; i < imageHeaders->FileHeader.NumberOfSections; ++i) - { - ++section; - auto nextSize = getSectionSize (*section); - auto nextAddress = getSectionAddress (*section); - auto nextAddressPage = getPageBase (nextAddress); - - if (addressPage == nextAddressPage || address + size > nextAddressPage) - { - if ((section->Characteristics & IMAGE_SCN_MEM_DISCARDABLE) == 0 || (characteristics & IMAGE_SCN_MEM_DISCARDABLE) == 0) - characteristics = (characteristics | section->Characteristics) & ~static_cast (IMAGE_SCN_MEM_DISCARDABLE); - else - characteristics |= section->Characteristics; - - size = static_cast ((nextAddress + nextSize) - address); - continue; - } - - if (! setProtectionFlags (size, characteristics, address, addressPage, false)) - return false; - - size = nextSize; - address = nextAddress; - addressPage = nextAddressPage; - characteristics = section->Characteristics; - } - - return setProtectionFlags (size, characteristics, address, addressPage, true); - } - - bool setProtectionFlags (size_t sectionSize, DWORD sectionCharacteristics, void* sectionAddress, void* addressPage, bool isLast) - { - if (sectionSize == 0) - return true; - - if ((sectionCharacteristics & IMAGE_SCN_MEM_DISCARDABLE) != 0) - { - if (sectionAddress == addressPage - && (isLast || imageHeaders->OptionalHeader.SectionAlignment == pageSize || (sectionSize % pageSize) == 0)) - VirtualFree (sectionAddress, sectionSize, MEM_DECOMMIT); - - return true; - } - - auto getProtectionFlags = [] (DWORD type) - { - return ((type & IMAGE_SCN_MEM_NOT_CACHED) ? PAGE_NOCACHE : 0) - | ((type & IMAGE_SCN_MEM_EXECUTE) - ? ((type & IMAGE_SCN_MEM_READ) - ? ((type & IMAGE_SCN_MEM_WRITE) ? PAGE_EXECUTE_READWRITE : PAGE_EXECUTE_READ) - : ((type & IMAGE_SCN_MEM_WRITE) ? PAGE_EXECUTE_WRITECOPY : PAGE_EXECUTE)) - : ((type & IMAGE_SCN_MEM_READ) - ? ((type & IMAGE_SCN_MEM_WRITE) ? PAGE_READWRITE : PAGE_READONLY) - : ((type & IMAGE_SCN_MEM_WRITE) ? PAGE_WRITECOPY : PAGE_NOACCESS))); - }; - - DWORD oldProtectValue; - return VirtualProtect (sectionAddress, sectionSize, - static_cast (getProtectionFlags (sectionCharacteristics)), - std::addressof (oldProtectValue)) != 0; - } - - bool loadImports() - { - auto imp = getDataDirectoryAddress (IMAGE_DIRECTORY_ENTRY_IMPORT); - - if (imp == nullptr) - return false; - - while (! IsBadReadPtr (imp, sizeof (IMAGE_IMPORT_DESCRIPTOR)) && imp->Name != 0) - { - auto handle = LoadLibraryA (getOffsetAs (imageData, imp->Name)); - - if (handle == nullptr) - return false; - - loadedModules.push_back (handle); - auto thunkRef = getOffsetAs (imageData, imp->OriginalFirstThunk ? imp->OriginalFirstThunk - : imp->FirstThunk); - auto funcRef = getOffsetAs (imageData, imp->FirstThunk); - - for (; *thunkRef != 0; ++thunkRef, ++funcRef) - { - auto name = IMAGE_SNAP_BY_ORDINAL(*thunkRef) - ? (LPCSTR) IMAGE_ORDINAL(*thunkRef) - : (LPCSTR) std::addressof (getOffsetAs (imageData, *thunkRef)->Name); - - *funcRef = GetProcAddress (handle, name); - - if (*funcRef == 0) - return false; - } - - ++imp; - } - - return true; - } - - size_t getSectionSize (const IMAGE_SECTION_HEADER& section) const - { - if (auto size = section.SizeOfRawData) - return size; - - if (section.Characteristics & IMAGE_SCN_CNT_INITIALIZED_DATA) - return imageHeaders->OptionalHeader.SizeOfInitializedData; - - if (section.Characteristics & IMAGE_SCN_CNT_UNINITIALIZED_DATA) - return imageHeaders->OptionalHeader.SizeOfUninitializedData; - - return 0; - } - - static size_t roundUp (size_t value, size_t alignment) { return (value + alignment - 1) & ~(alignment - 1); } - char* getPageBase (void* address) const { return (char*) (reinterpret_cast (address) & ~static_cast (pageSize - 1)); } - - char* getSectionAddress (const IMAGE_SECTION_HEADER& section) const - { - #ifdef _WIN64 - return reinterpret_cast (static_cast (section.Misc.PhysicalAddress) - | (static_cast (imageHeaders->OptionalHeader.ImageBase & 0xffffffff00000000))); - #else - return reinterpret_cast (section.Misc.PhysicalAddress); - #endif - } - - bool copySections (const void* data, size_t size, size_t sectionAlignment) const - { - auto section = IMAGE_FIRST_SECTION (imageHeaders); - - for (int i = 0; i < imageHeaders->FileHeader.NumberOfSections; ++i, ++section) - { - if (section->SizeOfRawData == 0) - { - if (sectionAlignment == 0) - continue; - - if (auto dest = VirtualAlloc (getOffsetAs (imageData, section->VirtualAddress), - sectionAlignment, MEM_COMMIT, PAGE_READWRITE)) - { - dest = getOffsetAs (imageData, section->VirtualAddress); - section->Misc.PhysicalAddress = static_cast (reinterpret_cast (dest)); - memset (dest, 0, sectionAlignment); - continue; - } - - return false; - } - - if (size < section->PointerToRawData + section->SizeOfRawData) - return false; - - if (auto dest = VirtualAlloc (getOffsetAs (imageData, section->VirtualAddress), - section->SizeOfRawData, MEM_COMMIT, PAGE_READWRITE)) - { - dest = getOffsetAs (imageData, section->VirtualAddress); - memcpy (dest, static_cast (data) + section->PointerToRawData, section->SizeOfRawData); - section->Misc.PhysicalAddress = static_cast (reinterpret_cast (dest)); - continue; - } - - return false; - } - - return true; - } - - void performRelocation (ptrdiff_t delta) - { - auto directory = imageHeaders->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC]; - - if (directory.Size != 0) - { - auto relocation = getOffsetAs (imageData, directory.VirtualAddress); - - while (relocation->VirtualAddress > 0) - { - auto dest = getOffsetAs (imageData, relocation->VirtualAddress); - auto offset = getOffsetAs (relocation, sizeof (IMAGE_BASE_RELOCATION)); - - for (uint32_t i = 0; i < (relocation->SizeOfBlock - sizeof (IMAGE_BASE_RELOCATION)) / 2; ++i, ++offset) - { - switch (*offset >> 12) - { - case IMAGE_REL_BASED_HIGHLOW: addDelta (dest + (*offset & 0xfff), delta); break; - case IMAGE_REL_BASED_DIR64: addDelta (dest + (*offset & 0xfff), delta); break; - case IMAGE_REL_BASED_ABSOLUTE: - default: break; - } - } - - relocation = getOffsetAs (relocation, relocation->SizeOfBlock); - } - } - } - - template - static void addDelta (char* addr, ptrdiff_t delta) - { - *reinterpret_cast (addr) = static_cast (static_cast (*reinterpret_cast (addr)) + delta); - } -}; - -inline MemoryDLL::~MemoryDLL() = default; - -inline MemoryDLL::MemoryDLL (const void* data, size_t size) : pimpl (std::make_unique()) -{ - if (! pimpl->initialise (data, size)) - pimpl.reset(); -} - -inline void* MemoryDLL::findFunction (std::string_view name) -{ - return pimpl != nullptr ? pimpl->findFunction (name) : nullptr; -} - -END_NAMESPACE_DISTRHO - -#endif // CHOC_MEMORYDLL_HEADER_INCLUDED diff --git a/dpf/distrho/extra/choc/choc_Platform.h b/dpf/distrho/extra/choc/choc_Platform.h deleted file mode 100644 index e117943..0000000 --- a/dpf/distrho/extra/choc/choc_Platform.h +++ /dev/null @@ -1,67 +0,0 @@ -// -// ██████ ██  ██  ██████  ██████ -// ██      ██  ██ ██    ██ ██       ** Classy Header-Only Classes ** -// ██  ███████ ██  ██ ██ -// ██  ██   ██ ██  ██ ██ https://github.com/Tracktion/choc -//  ██████ ██  ██  ██████   ██████ -// -// CHOC is (C)2022 Tracktion Corporation, and is offered under the terms of the ISC license: -// -// Permission to use, copy, modify, and/or distribute this software for any purpose with or -// without fee is hereby granted, provided that the above copyright notice and this permission -// notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -// WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -// AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -// CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -// WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -#ifndef CHOC_PLATFORM_DETECT_HEADER_INCLUDED -#define CHOC_PLATFORM_DETECT_HEADER_INCLUDED - -/* - These conditionals declare the macros - - CHOC_WINDOWS - - CHOC_ANDROID - - CHOC_LINUX - - CHOC_OSX - - CHOC_IOS - ...based on the current operating system. - - It also declares a string literal macro CHOC_OPERATING_SYSTEM_NAME - which can be used if you need a text description of the OS. -*/ -#if defined (_WIN32) || defined (_WIN64) - #define CHOC_WINDOWS 1 - #define CHOC_OPERATING_SYSTEM_NAME "Windows" -#elif __ANDROID__ - #define CHOC_ANDROID 1 - #define CHOC_OPERATING_SYSTEM_NAME "Android" -#elif defined (LINUX) || defined (__linux__) - #define CHOC_LINUX 1 - #define CHOC_OPERATING_SYSTEM_NAME "Linux" -#elif __APPLE__ - #define CHOC_APPLE 1 - #include - #if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR - #define CHOC_IOS 1 - #define CHOC_OPERATING_SYSTEM_NAME "iOS" - #else - #define CHOC_OSX 1 - #define CHOC_OPERATING_SYSTEM_NAME "OSX" - #endif -#elif defined (__FreeBSD__) || (__OpenBSD__) - #define CHOC_BSD 1 - #define CHOC_OPERATING_SYSTEM_NAME "BSD" -#elif defined (_POSIX_VERSION) - #define CHOC_POSIX 1 - #define CHOC_OPERATING_SYSTEM_NAME "Posix" -#elif defined (__EMSCRIPTEN__) - #define CHOC_EMSCRIPTEN 1 - #define CHOC_OPERATING_SYSTEM_NAME "Emscripten" -#else - #error "Unknown platform!" -#endif - - -#endif // CHOC_PLATFORM_DETECT_HEADER_INCLUDED diff --git a/dpf/distrho/extra/choc/choc_StringUtilities.h b/dpf/distrho/extra/choc/choc_StringUtilities.h deleted file mode 100644 index 4cd54c6..0000000 --- a/dpf/distrho/extra/choc/choc_StringUtilities.h +++ /dev/null @@ -1,74 +0,0 @@ -// -// ██████ ██  ██  ██████  ██████ -// ██      ██  ██ ██    ██ ██       ** Classy Header-Only Classes ** -// ██  ███████ ██  ██ ██ -// ██  ██   ██ ██  ██ ██ https://github.com/Tracktion/choc -//  ██████ ██  ██  ██████   ██████ -// -// CHOC is (C)2022 Tracktion Corporation, and is offered under the terms of the ISC license: -// -// Permission to use, copy, modify, and/or distribute this software for any purpose with or -// without fee is hereby granted, provided that the above copyright notice and this permission -// notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -// WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -// AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -// CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -// WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -#ifndef CHOC_STRING_UTILS_HEADER_INCLUDED -#define CHOC_STRING_UTILS_HEADER_INCLUDED - -#include -#include -#include -#include -#include -#include -#include -#include - -START_NAMESPACE_DISTRHO - -//============================================================================== -/// Returns a hex string for the given value. -/// If the minimum number of digits is non-zero, it will be zero-padded to fill this length; -template -std::string createHexString (IntegerType value); - - -//============================================================================== -// _ _ _ _ -// __| | ___ | |_ __ _ (_)| | ___ -// / _` | / _ \| __| / _` || || |/ __| -// | (_| || __/| |_ | (_| || || |\__ \ _ _ _ -// \__,_| \___| \__| \__,_||_||_||___/(_)(_)(_) -// -// Code beyond this point is implementation detail... -// -//============================================================================== - -template -std::string createHexString (IntegerType v) -{ - static_assert (std::is_integral::value, "Need to pass integers into this method"); - auto value = static_cast::type> (v); - - char hex[40]; - const auto end = hex + sizeof (hex) - 1; - auto d = end; - *d = 0; - - for (;;) - { - *--d = "0123456789abcdef"[static_cast (value) & 15u]; - value = static_cast (value >> 4); - - if (value == 0) - return std::string (d, end); - } -} - -END_NAMESPACE_DISTRHO - -#endif diff --git a/dpf/distrho/extra/choc/choc_WebView.h b/dpf/distrho/extra/choc/choc_WebView.h deleted file mode 100644 index fb88594..0000000 --- a/dpf/distrho/extra/choc/choc_WebView.h +++ /dev/null @@ -1,4769 +0,0 @@ -// -// ██████ ██  ██  ██████  ██████ -// ██      ██  ██ ██    ██ ██       ** Classy Header-Only Classes ** -// ██  ███████ ██  ██ ██ -// ██  ██   ██ ██  ██ ██ https://github.com/Tracktion/choc -//  ██████ ██  ██  ██████   ██████ -// -// CHOC is (C)2022 Tracktion Corporation, and is offered under the terms of the ISC license: -// -// Permission to use, copy, modify, and/or distribute this software for any purpose with or -// without fee is hereby granted, provided that the above copyright notice and this permission -// notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -// WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -// AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -// CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -// WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -#ifndef CHOC_WEBVIEW_HEADER_INCLUDED -#define CHOC_WEBVIEW_HEADER_INCLUDED - -#include -#include -#include -#include -#include -#include -#include "choc_Platform.h" -#include "choc_StringUtilities.h" - -START_NAMESPACE_DISTRHO - -/** - Creates an embedded browser which can be placed inside some kind of parent window. - - After creating a WebView object, its getViewHandle() returns a platform-specific - handle that can be added to whatever kind of window is appropriate. -*/ -class WebView -{ -public: - /// Contains optional settings to pass to a WebView constructor. - struct Options - { - /// If supported, this enables developer features in the browser - bool enableDebugMode = false; - - /// On OSX, setting this to true will allow the first click on a non-focused - /// webview to be used as input, rather than the default behaviour, which is - /// for the first click to give the webview focus but not trigger any action. - bool acceptsFirstMouseClick = false; - - /// Optional user-agent string which can be used to override the default. Leave - // this empty for default behaviour. - std::string customUserAgent; - - /// If fetchResource is being used to serve custom data, you can choose to - /// override the default URI scheme by providing a home URI here, e.g. if - /// you wanted a scheme called `foo:`, you might set this to `foo://myname.com` - /// and the view will navigate to that address when launched. - /// Leave blank for a default. - std::string customSchemeURI; - }; - - /// Creates a WebView with default options - WebView(); - /// Creates a WebView with some options - WebView (const Options&); - - WebView (const WebView&) = delete; - WebView (WebView&&) = default; - WebView& operator= (WebView&&) = default; - ~WebView(); - - /// Returns true if the webview has been successfully initialised. This could - /// fail on some systems if the OS doesn't provide a suitable component. - bool loadedOK() const; - - /// Asynchronously evaluates some javascript. - /// This will return true if the webview is in a state that lets it run code, or - /// false if something prevents that. - bool evaluateJavascript (const std::string& script); - - /// Sends the browser to this URL - bool navigate (const std::string& url); - - /// A callback function which can be passed to bind(). - using CallbackFn = std::function; - /// Set the C++ callback function. - bool bind (CallbackFn&& function); - - /// Adds a script to run when the browser loads a page - bool addInitScript (const std::string& script); - - /// Returns a platform-specific handle for this view - void* getViewHandle() const; - -private: - //============================================================================== - struct Pimpl; - std::unique_ptr pimpl; - - CallbackFn binding {}; - void invokeBinding (const std::string&); -}; - -END_NAMESPACE_DISTRHO - - -//============================================================================== -// _ _ _ _ -// __| | ___ | |_ __ _ (_)| | ___ -// / _` | / _ \| __| / _` || || |/ __| -// | (_| || __/| |_ | (_| || || |\__ \ _ _ _ -// \__,_| \___| \__| \__,_||_||_||___/(_)(_)(_) -// -// Code beyond this point is implementation detail... -// -//============================================================================== - -#include "choc_DynamicLibrary.h" -#include "choc_MemoryDLL.h" -#include "choc_DesktopWindow.h" - -START_NAMESPACE_DISTRHO -static MemoryDLL getWebview2LoaderDLL(); -END_NAMESPACE_DISTRHO - -#ifndef __webview2_h__ -#define __webview2_h__ - -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 475 -#endif - -#include -#include -#include -#include -#include -#include - -#ifndef __RPCNDR_H_VERSION__ -#error "This code requires an updated version of " -#endif - -extern "C" -{ - -struct EventRegistrationToken { __int64 value; }; - -typedef interface ICoreWebView2 ICoreWebView2; -typedef interface ICoreWebView2Controller ICoreWebView2Controller; -typedef interface ICoreWebView2Environment ICoreWebView2Environment; -typedef interface ICoreWebView2HttpHeadersCollectionIterator ICoreWebView2HttpHeadersCollectionIterator; -typedef interface ICoreWebView2HttpRequestHeaders ICoreWebView2HttpRequestHeaders; -typedef interface ICoreWebView2HttpResponseHeaders ICoreWebView2HttpResponseHeaders; -typedef interface ICoreWebView2WebResourceRequest ICoreWebView2WebResourceRequest; -typedef interface ICoreWebView2WebResourceRequestedEventArgs ICoreWebView2WebResourceRequestedEventArgs; -typedef interface ICoreWebView2WebResourceRequestedEventHandler ICoreWebView2WebResourceRequestedEventHandler; -typedef interface ICoreWebView2WebResourceResponse ICoreWebView2WebResourceResponse; - -MIDL_INTERFACE("4e8a3389-c9d8-4bd2-b6b5-124fee6cc14d") -ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE Invoke(HRESULT, ICoreWebView2Environment*) = 0; -}; - -MIDL_INTERFACE("6c4819f3-c9b7-4260-8127-c9f5bde7f68c") -ICoreWebView2CreateCoreWebView2ControllerCompletedHandler : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE Invoke(HRESULT, ICoreWebView2Controller*) = 0; -}; - -MIDL_INTERFACE("b96d755e-0319-4e92-a296-23436f46a1fc") -ICoreWebView2Environment : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE CreateCoreWebView2Controller(HWND, ICoreWebView2CreateCoreWebView2ControllerCompletedHandler*) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateWebResourceResponse(IStream*, int, LPCWSTR, LPCWSTR, ICoreWebView2WebResourceResponse**) = 0; - virtual HRESULT STDMETHODCALLTYPE get_BrowserVersionString(LPWSTR*) = 0; - virtual HRESULT STDMETHODCALLTYPE add_NewBrowserVersionAvailable(void*, EventRegistrationToken*) = 0; - virtual HRESULT STDMETHODCALLTYPE remove_NewBrowserVersionAvailable(EventRegistrationToken) = 0; -}; - -MIDL_INTERFACE("0f99a40c-e962-4207-9e92-e3d542eff849") -ICoreWebView2WebMessageReceivedEventArgs : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE get_Source(LPWSTR *) = 0; - virtual HRESULT STDMETHODCALLTYPE get_WebMessageAsJson(LPWSTR *) = 0; - virtual HRESULT STDMETHODCALLTYPE TryGetWebMessageAsString(LPWSTR *) = 0; -}; - -MIDL_INTERFACE("57213f19-00e6-49fa-8e07-898ea01ecbd2") -ICoreWebView2WebMessageReceivedEventHandler : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE Invoke(ICoreWebView2 *, ICoreWebView2WebMessageReceivedEventArgs *) = 0; -}; - -enum COREWEBVIEW2_PERMISSION_KIND -{ - COREWEBVIEW2_PERMISSION_KIND_UNKNOWN_PERMISSION = 0, - COREWEBVIEW2_PERMISSION_KIND_MICROPHONE = (COREWEBVIEW2_PERMISSION_KIND_UNKNOWN_PERMISSION + 1), - COREWEBVIEW2_PERMISSION_KIND_CAMERA = (COREWEBVIEW2_PERMISSION_KIND_MICROPHONE + 1), - COREWEBVIEW2_PERMISSION_KIND_GEOLOCATION = (COREWEBVIEW2_PERMISSION_KIND_CAMERA + 1), - COREWEBVIEW2_PERMISSION_KIND_NOTIFICATIONS = (COREWEBVIEW2_PERMISSION_KIND_GEOLOCATION + 1), - COREWEBVIEW2_PERMISSION_KIND_OTHER_SENSORS = (COREWEBVIEW2_PERMISSION_KIND_NOTIFICATIONS + 1), - COREWEBVIEW2_PERMISSION_KIND_CLIPBOARD_READ = (COREWEBVIEW2_PERMISSION_KIND_OTHER_SENSORS + 1) -}; - -enum COREWEBVIEW2_PERMISSION_STATE -{ - COREWEBVIEW2_PERMISSION_STATE_DEFAULT = 0, - COREWEBVIEW2_PERMISSION_STATE_ALLOW = (COREWEBVIEW2_PERMISSION_STATE_DEFAULT + 1), - COREWEBVIEW2_PERMISSION_STATE_DENY = (COREWEBVIEW2_PERMISSION_STATE_ALLOW + 1) -}; - -enum COREWEBVIEW2_MOVE_FOCUS_REASON -{ - COREWEBVIEW2_MOVE_FOCUS_REASON_PROGRAMMATIC = 0, - COREWEBVIEW2_MOVE_FOCUS_REASON_NEXT = (COREWEBVIEW2_MOVE_FOCUS_REASON_PROGRAMMATIC + 1), - COREWEBVIEW2_MOVE_FOCUS_REASON_PREVIOUS = (COREWEBVIEW2_MOVE_FOCUS_REASON_NEXT + 1) -}; - -enum COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT {}; -enum COREWEBVIEW2_WEB_RESOURCE_CONTEXT -{ - COREWEBVIEW2_WEB_RESOURCE_CONTEXT_ALL = 0 -}; - -MIDL_INTERFACE("c10e7f7b-b585-46f0-a623-8befbf3e4ee0") -ICoreWebView2Deferral : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE Complete() = 0; -}; - -MIDL_INTERFACE("97055cd4-512c-4264-8b5f-e3f446cea6a5") -ICoreWebView2WebResourceRequest : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE get_Uri(LPWSTR*) = 0; - virtual HRESULT STDMETHODCALLTYPE put_Uri(LPCWSTR) = 0; - virtual HRESULT STDMETHODCALLTYPE get_Method(LPWSTR*) = 0; - virtual HRESULT STDMETHODCALLTYPE put_Method(LPCWSTR) = 0; - virtual HRESULT STDMETHODCALLTYPE get_Content(IStream**) = 0; - virtual HRESULT STDMETHODCALLTYPE put_Content(IStream*) = 0; - virtual HRESULT STDMETHODCALLTYPE get_Headers(ICoreWebView2HttpRequestHeaders**) = 0; -}; - -MIDL_INTERFACE("973ae2ef-ff18-4894-8fb2-3c758f046810") -ICoreWebView2PermissionRequestedEventArgs : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE get_Uri(LPWSTR *) = 0; - virtual HRESULT STDMETHODCALLTYPE get_PermissionKind(COREWEBVIEW2_PERMISSION_KIND *) = 0; - virtual HRESULT STDMETHODCALLTYPE get_IsUserInitiated(BOOL *) = 0; - virtual HRESULT STDMETHODCALLTYPE get_State(COREWEBVIEW2_PERMISSION_STATE *) = 0; - virtual HRESULT STDMETHODCALLTYPE put_State(COREWEBVIEW2_PERMISSION_STATE) = 0; - virtual HRESULT STDMETHODCALLTYPE GetDeferral(ICoreWebView2Deferral **) = 0; -}; - - -MIDL_INTERFACE("e562e4f0-d7fa-43ac-8d71-c05150499f00") -ICoreWebView2Settings : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE get_IsScriptEnabled(BOOL * isScriptEnabled) = 0; - virtual HRESULT STDMETHODCALLTYPE put_IsScriptEnabled(BOOL isScriptEnabled) = 0; - virtual HRESULT STDMETHODCALLTYPE get_IsWebMessageEnabled(BOOL* isWebMessageEnabled) = 0; - virtual HRESULT STDMETHODCALLTYPE put_IsWebMessageEnabled(BOOL isWebMessageEnabled) = 0; - virtual HRESULT STDMETHODCALLTYPE get_AreDefaultScriptDialogsEnabled(BOOL* areDefaultScriptDialogsEnabled) = 0; - virtual HRESULT STDMETHODCALLTYPE put_AreDefaultScriptDialogsEnabled(BOOL areDefaultScriptDialogsEnabled) = 0; - virtual HRESULT STDMETHODCALLTYPE get_IsStatusBarEnabled(BOOL* isStatusBarEnabled) = 0; - virtual HRESULT STDMETHODCALLTYPE put_IsStatusBarEnabled(BOOL isStatusBarEnabled) = 0; - virtual HRESULT STDMETHODCALLTYPE get_AreDevToolsEnabled(BOOL* areDevToolsEnabled) = 0; - virtual HRESULT STDMETHODCALLTYPE put_AreDevToolsEnabled(BOOL areDevToolsEnabled) = 0; - virtual HRESULT STDMETHODCALLTYPE get_AreDefaultContextMenusEnabled(BOOL* enabled) = 0; - virtual HRESULT STDMETHODCALLTYPE put_AreDefaultContextMenusEnabled(BOOL enabled) = 0; - virtual HRESULT STDMETHODCALLTYPE get_AreHostObjectsAllowed(BOOL* allowed) = 0; - virtual HRESULT STDMETHODCALLTYPE put_AreHostObjectsAllowed(BOOL allowed) = 0; - virtual HRESULT STDMETHODCALLTYPE get_IsZoomControlEnabled(BOOL* enabled) = 0; - virtual HRESULT STDMETHODCALLTYPE put_IsZoomControlEnabled(BOOL enabled) = 0; - virtual HRESULT STDMETHODCALLTYPE get_IsBuiltInErrorPageEnabled(BOOL* enabled) = 0; - virtual HRESULT STDMETHODCALLTYPE put_IsBuiltInErrorPageEnabled(BOOL enabled) = 0; -}; - -MIDL_INTERFACE("ee9a0f68-f46c-4e32-ac23-ef8cac224d2a") -ICoreWebView2Settings2 : public ICoreWebView2Settings -{ -public: - virtual HRESULT STDMETHODCALLTYPE get_UserAgent(LPWSTR * userAgent) = 0; - virtual HRESULT STDMETHODCALLTYPE put_UserAgent(LPCWSTR userAgent) = 0; -}; - -MIDL_INTERFACE("15e1c6a3-c72a-4df3-91d7-d097fbec6bfd") -ICoreWebView2PermissionRequestedEventHandler : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE Invoke(ICoreWebView2*, ICoreWebView2PermissionRequestedEventArgs*) = 0; -}; - -MIDL_INTERFACE("76eceacb-0462-4d94-ac83-423a6793775e") -ICoreWebView2 : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE get_Settings(ICoreWebView2Settings**) = 0; - virtual HRESULT STDMETHODCALLTYPE get_Source(LPWSTR*) = 0; - virtual HRESULT STDMETHODCALLTYPE Navigate(LPCWSTR) = 0; - virtual HRESULT STDMETHODCALLTYPE NavigateToString(LPCWSTR) = 0; - virtual HRESULT STDMETHODCALLTYPE add_NavigationStarting(void*, EventRegistrationToken*) = 0; - virtual HRESULT STDMETHODCALLTYPE remove_NavigationStarting(EventRegistrationToken) = 0; - virtual HRESULT STDMETHODCALLTYPE add_ContentLoading(void*, EventRegistrationToken*) = 0; - virtual HRESULT STDMETHODCALLTYPE remove_ContentLoading(EventRegistrationToken) = 0; - virtual HRESULT STDMETHODCALLTYPE add_SourceChanged(void*, EventRegistrationToken*) = 0; - virtual HRESULT STDMETHODCALLTYPE remove_SourceChanged(EventRegistrationToken) = 0; - virtual HRESULT STDMETHODCALLTYPE add_HistoryChanged(void*, EventRegistrationToken*) = 0; - virtual HRESULT STDMETHODCALLTYPE remove_HistoryChanged(EventRegistrationToken) = 0; - virtual HRESULT STDMETHODCALLTYPE add_NavigationCompleted(void*, EventRegistrationToken*) = 0; - virtual HRESULT STDMETHODCALLTYPE remove_NavigationCompleted(EventRegistrationToken) = 0; - virtual HRESULT STDMETHODCALLTYPE add_FrameNavigationStarting(void*, EventRegistrationToken*) = 0; - virtual HRESULT STDMETHODCALLTYPE remove_FrameNavigationStarting(EventRegistrationToken) = 0; - virtual HRESULT STDMETHODCALLTYPE add_FrameNavigationCompleted(void*, EventRegistrationToken*) = 0; - virtual HRESULT STDMETHODCALLTYPE remove_FrameNavigationCompleted(EventRegistrationToken) = 0; - virtual HRESULT STDMETHODCALLTYPE add_ScriptDialogOpening(void*, EventRegistrationToken*) = 0; - virtual HRESULT STDMETHODCALLTYPE remove_ScriptDialogOpening(EventRegistrationToken) = 0; - virtual HRESULT STDMETHODCALLTYPE add_PermissionRequested(ICoreWebView2PermissionRequestedEventHandler*, EventRegistrationToken*) = 0; - virtual HRESULT STDMETHODCALLTYPE remove_PermissionRequested(EventRegistrationToken) = 0; - virtual HRESULT STDMETHODCALLTYPE add_ProcessFailed(void*, EventRegistrationToken*) = 0; - virtual HRESULT STDMETHODCALLTYPE remove_ProcessFailed(EventRegistrationToken) = 0; - virtual HRESULT STDMETHODCALLTYPE AddScriptToExecuteOnDocumentCreated(LPCWSTR, void*) = 0; - virtual HRESULT STDMETHODCALLTYPE RemoveScriptToExecuteOnDocumentCreated(LPCWSTR) = 0; - virtual HRESULT STDMETHODCALLTYPE ExecuteScript(LPCWSTR, void*) = 0; - virtual HRESULT STDMETHODCALLTYPE CapturePreview(COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT, void*, void*) = 0; - virtual HRESULT STDMETHODCALLTYPE Reload() = 0; - virtual HRESULT STDMETHODCALLTYPE PostWebMessageAsJson(LPCWSTR) = 0; - virtual HRESULT STDMETHODCALLTYPE PostWebMessageAsString(LPCWSTR) = 0; - virtual HRESULT STDMETHODCALLTYPE add_WebMessageReceived(ICoreWebView2WebMessageReceivedEventHandler*, EventRegistrationToken*) = 0; - virtual HRESULT STDMETHODCALLTYPE remove_WebMessageReceived(EventRegistrationToken) = 0; - virtual HRESULT STDMETHODCALLTYPE CallDevToolsProtocolMethod(LPCWSTR, LPCWSTR, void*) = 0; - virtual HRESULT STDMETHODCALLTYPE get_BrowserProcessId(UINT32*) = 0; - virtual HRESULT STDMETHODCALLTYPE get_CanGoBack(BOOL*) = 0; - virtual HRESULT STDMETHODCALLTYPE get_CanGoForward(BOOL*) = 0; - virtual HRESULT STDMETHODCALLTYPE GoBack() = 0; - virtual HRESULT STDMETHODCALLTYPE GoForward() = 0; - virtual HRESULT STDMETHODCALLTYPE GetDevToolsProtocolEventReceiver(LPCWSTR, void**) = 0; - virtual HRESULT STDMETHODCALLTYPE Stop() = 0; - virtual HRESULT STDMETHODCALLTYPE add_NewWindowRequested(void*, EventRegistrationToken*) = 0; - virtual HRESULT STDMETHODCALLTYPE remove_NewWindowRequested(EventRegistrationToken) = 0; - virtual HRESULT STDMETHODCALLTYPE add_DocumentTitleChanged(void*, EventRegistrationToken*) = 0; - virtual HRESULT STDMETHODCALLTYPE remove_DocumentTitleChanged(EventRegistrationToken) = 0; - virtual HRESULT STDMETHODCALLTYPE get_DocumentTitle(LPWSTR*) = 0; - virtual HRESULT STDMETHODCALLTYPE AddHostObjectToScript(LPCWSTR, VARIANT*) = 0; - virtual HRESULT STDMETHODCALLTYPE RemoveHostObjectFromScript(LPCWSTR) = 0; - virtual HRESULT STDMETHODCALLTYPE OpenDevToolsWindow() = 0; - virtual HRESULT STDMETHODCALLTYPE add_ContainsFullScreenElementChanged(void*, EventRegistrationToken*) = 0; - virtual HRESULT STDMETHODCALLTYPE remove_ContainsFullScreenElementChanged(EventRegistrationToken) = 0; - virtual HRESULT STDMETHODCALLTYPE get_ContainsFullScreenElement(BOOL*) = 0; - virtual HRESULT STDMETHODCALLTYPE add_WebResourceRequested(ICoreWebView2WebResourceRequestedEventHandler*, EventRegistrationToken*) = 0; - virtual HRESULT STDMETHODCALLTYPE remove_WebResourceRequested(EventRegistrationToken) = 0; - virtual HRESULT STDMETHODCALLTYPE AddWebResourceRequestedFilter(const LPCWSTR, const COREWEBVIEW2_WEB_RESOURCE_CONTEXT) = 0; - virtual HRESULT STDMETHODCALLTYPE RemoveWebResourceRequestedFilter(const LPCWSTR, const COREWEBVIEW2_WEB_RESOURCE_CONTEXT) = 0; - virtual HRESULT STDMETHODCALLTYPE add_WindowCloseRequested(void*, EventRegistrationToken*) = 0; - virtual HRESULT STDMETHODCALLTYPE remove_WindowCloseRequested(EventRegistrationToken) = 0; -}; - -MIDL_INTERFACE("4d00c0d1-9434-4eb6-8078-8697a560334f") -ICoreWebView2Controller : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE get_IsVisible(BOOL*) = 0; - virtual HRESULT STDMETHODCALLTYPE put_IsVisible(BOOL) = 0; - virtual HRESULT STDMETHODCALLTYPE get_Bounds(RECT*) = 0; - virtual HRESULT STDMETHODCALLTYPE put_Bounds(RECT) = 0; - virtual HRESULT STDMETHODCALLTYPE get_ZoomFactor(double*) = 0; - virtual HRESULT STDMETHODCALLTYPE put_ZoomFactor(double) = 0; - virtual HRESULT STDMETHODCALLTYPE add_ZoomFactorChanged(void*, EventRegistrationToken*) = 0; - virtual HRESULT STDMETHODCALLTYPE remove_ZoomFactorChanged(EventRegistrationToken) = 0; - virtual HRESULT STDMETHODCALLTYPE SetBoundsAndZoomFactor(RECT, double) = 0; - virtual HRESULT STDMETHODCALLTYPE MoveFocus(COREWEBVIEW2_MOVE_FOCUS_REASON) = 0; - virtual HRESULT STDMETHODCALLTYPE add_MoveFocusRequested(void*, EventRegistrationToken*) = 0; - virtual HRESULT STDMETHODCALLTYPE remove_MoveFocusRequested(EventRegistrationToken) = 0; - virtual HRESULT STDMETHODCALLTYPE add_GotFocus(void*, EventRegistrationToken*) = 0; - virtual HRESULT STDMETHODCALLTYPE remove_GotFocus(EventRegistrationToken) = 0; - virtual HRESULT STDMETHODCALLTYPE add_LostFocus(void*, EventRegistrationToken*) = 0; - virtual HRESULT STDMETHODCALLTYPE remove_LostFocus(EventRegistrationToken) = 0; - virtual HRESULT STDMETHODCALLTYPE add_AcceleratorKeyPressed(void*, EventRegistrationToken*) = 0; - virtual HRESULT STDMETHODCALLTYPE remove_AcceleratorKeyPressed(EventRegistrationToken) = 0; - virtual HRESULT STDMETHODCALLTYPE get_ParentWindow(HWND*) = 0; - virtual HRESULT STDMETHODCALLTYPE put_ParentWindow(HWND) = 0; - virtual HRESULT STDMETHODCALLTYPE NotifyParentWindowPositionChanged() = 0; - virtual HRESULT STDMETHODCALLTYPE Close() = 0; - virtual HRESULT STDMETHODCALLTYPE get_CoreWebView2(ICoreWebView2**) = 0; -}; - -STDAPI CreateCoreWebView2EnvironmentWithOptions(PCWSTR, PCWSTR, void*, ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler*); - -MIDL_INTERFACE("0702fc30-f43b-47bb-ab52-a42cb552ad9f") -ICoreWebView2HttpHeadersCollectionIterator : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE GetCurrentHeader(LPWSTR*, LPWSTR*) = 0; - virtual HRESULT STDMETHODCALLTYPE get_HasCurrentHeader(BOOL*) = 0; - virtual HRESULT STDMETHODCALLTYPE MoveNext(BOOL*) = 0; -}; - -MIDL_INTERFACE("e86cac0e-5523-465c-b536-8fb9fc8c8c60") -ICoreWebView2HttpRequestHeaders : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE GetHeader(LPCWSTR, LPWSTR*) = 0; - virtual HRESULT STDMETHODCALLTYPE GetHeaders(LPCWSTR, ICoreWebView2HttpHeadersCollectionIterator**) = 0; - virtual HRESULT STDMETHODCALLTYPE Contains(LPCWSTR, BOOL*) = 0; - virtual HRESULT STDMETHODCALLTYPE SetHeader(LPCWSTR, LPCWSTR) = 0; - virtual HRESULT STDMETHODCALLTYPE RemoveHeader(LPCWSTR) = 0; - virtual HRESULT STDMETHODCALLTYPE GetIterator(ICoreWebView2HttpHeadersCollectionIterator**) = 0; -}; - -MIDL_INTERFACE("03c5ff5a-9b45-4a88-881c-89a9f328619c") -ICoreWebView2HttpResponseHeaders : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE AppendHeader(LPCWSTR, LPCWSTR) = 0; - virtual HRESULT STDMETHODCALLTYPE Contains(LPCWSTR, BOOL*) = 0; - virtual HRESULT STDMETHODCALLTYPE GetHeader(LPCWSTR, LPWSTR*) = 0; - virtual HRESULT STDMETHODCALLTYPE GetHeaders(LPCWSTR, ICoreWebView2HttpHeadersCollectionIterator**) = 0; - virtual HRESULT STDMETHODCALLTYPE GetIterator(ICoreWebView2HttpHeadersCollectionIterator**) = 0; -}; - -MIDL_INTERFACE("453e667f-12c7-49d4-be6d-ddbe7956f57a") -ICoreWebView2WebResourceRequestedEventArgs : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE get_Request(ICoreWebView2WebResourceRequest**) = 0; - virtual HRESULT STDMETHODCALLTYPE get_Response(ICoreWebView2WebResourceResponse**) = 0; - virtual HRESULT STDMETHODCALLTYPE put_Response(ICoreWebView2WebResourceResponse*) = 0; - virtual HRESULT STDMETHODCALLTYPE GetDeferral(ICoreWebView2Deferral**) = 0; - virtual HRESULT STDMETHODCALLTYPE get_ResourceContext(COREWEBVIEW2_WEB_RESOURCE_CONTEXT*) = 0; -}; - -MIDL_INTERFACE("ab00b74c-15f1-4646-80e8-e76341d25d71") -ICoreWebView2WebResourceRequestedEventHandler : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE Invoke(ICoreWebView2*, ICoreWebView2WebResourceRequestedEventArgs*) = 0; -}; - -MIDL_INTERFACE("aafcc94f-fa27-48fd-97df-830ef75aaec9") -ICoreWebView2WebResourceResponse : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE get_Content(IStream**) = 0; - virtual HRESULT STDMETHODCALLTYPE put_Content(IStream*) = 0; - virtual HRESULT STDMETHODCALLTYPE get_Headers(ICoreWebView2HttpResponseHeaders**) = 0; - virtual HRESULT STDMETHODCALLTYPE get_StatusCode(int*) = 0; - virtual HRESULT STDMETHODCALLTYPE put_StatusCode(int) = 0; - virtual HRESULT STDMETHODCALLTYPE get_ReasonPhrase(LPWSTR*) = 0; - virtual HRESULT STDMETHODCALLTYPE put_ReasonPhrase(LPCWSTR) = 0; -}; - -MIDL_INTERFACE("49511172-cc67-4bca-9923-137112f4c4cc") -ICoreWebView2ExecuteScriptCompletedHandler : public IUnknown -{ -public: - virtual HRESULT STDMETHODCALLTYPE Invoke (HRESULT, LPCWSTR) = 0; -}; - -} - -#endif // __webview2_h__ - -START_NAMESPACE_DISTRHO - -//============================================================================== -struct WebView::Pimpl -{ - Pimpl (WebView& v, const Options& opts) - : owner (v), options (opts) - { - CoInitialize (nullptr); - - webviewDLL = getWebview2LoaderDLL(); - - if (! webviewDLL) - return; - - hwnd = windowClass.createWindow (WS_POPUP, 400, 400, this); - - if (hwnd.hwnd == nullptr) - return; - - SetWindowLongPtr (hwnd, GWLP_USERDATA, (LONG_PTR) this); - - if (createEmbeddedWebView()) - { - resizeContentToFit(); - // coreWebViewController->MoveFocus (COREWEBVIEW2_MOVE_FOCUS_REASON_PROGRAMMATIC); - } - } - - ~Pimpl() - { - if (coreWebView != nullptr) - { - coreWebView->Release(); - coreWebView = nullptr; - } - - if (coreWebViewController != nullptr) - { - coreWebViewController->Release(); - coreWebViewController = nullptr; - } - - if (coreWebViewEnvironment != nullptr) - { - coreWebViewEnvironment->Release(); - coreWebViewEnvironment = nullptr; - } - - hwnd.reset(); - } - - bool loadedOK() const { return coreWebView != nullptr; } - void* getViewHandle() const { return (void*) hwnd.hwnd; } - - bool navigate (const std::string& url) - { - DISTRHO_SAFE_ASSERT_RETURN (coreWebView != nullptr, false); - return coreWebView->Navigate (createUTF16StringFromUTF8 (url).c_str()) == S_OK; - } - - bool addInitScript (const std::string& script) - { - DISTRHO_SAFE_ASSERT_RETURN (coreWebView != nullptr, false); - return coreWebView->AddScriptToExecuteOnDocumentCreated (createUTF16StringFromUTF8 (script).c_str(), nullptr) == S_OK; - } - - bool evaluateJavascript (const std::string& script) - { - DISTRHO_SAFE_ASSERT_RETURN (coreWebView != nullptr, false); - return coreWebView->ExecuteScript (createUTF16StringFromUTF8 (script).c_str(), nullptr) == S_OK; - } - -private: - WindowClass windowClass { L"CHOCWebView", (WNDPROC) wndProc }; - HWNDHolder hwnd; - - //============================================================================== - template - struct COMPtr - { - COMPtr (const COMPtr&) = delete; - COMPtr (COMPtr&&) = delete; - COMPtr (Type* o) : object (o) { if (object) object->AddRef(); } - ~COMPtr() { if (object) object->Release(); } - - Type* object = nullptr; - operator Type*() const { return object; } - }; - - static std::string getMessageFromHRESULT (HRESULT hr) - { - if (hr == S_OK) - return {}; - - wchar_t* buffer = nullptr; - auto length = FormatMessageW (FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, - nullptr, (DWORD) hr, MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPWSTR) std::addressof (buffer), 0, nullptr); - - if (length > 0) - { - auto message = createUTF8FromUTF16 (std::wstring (buffer, length)); - LocalFree (buffer); - return message; - } - - return createHexString (hr); - } - - static Pimpl* getPimpl (HWND h) { return (Pimpl*) GetWindowLongPtr (h, GWLP_USERDATA); } - - static LRESULT wndProc (HWND h, UINT msg, WPARAM wp, LPARAM lp) - { - if (msg == WM_SIZE) - if (auto w = getPimpl (h)) - w->resizeContentToFit(); - - if (msg == WM_SHOWWINDOW) - if (auto w = getPimpl (h); w->coreWebViewController != nullptr) - w->coreWebViewController->put_IsVisible (wp != 0); - - return DefWindowProcW (h, msg, wp, lp); - } - - void resizeContentToFit() - { - if (coreWebViewController != nullptr) - { - RECT r; - GetWindowRect (hwnd, &r); - r.right -= r.left; r.bottom -= r.top; - r.left = r.top = 0; - coreWebViewController->put_Bounds (r); - } - } - - bool createEmbeddedWebView() - { - if (auto userDataFolder = getUserDataFolder(); ! userDataFolder.empty()) - { - COMPtr handler (new EventHandler (*this)); - webviewInitialising.test_and_set(); - - if (auto createCoreWebView2EnvironmentWithOptions = (decltype(&CreateCoreWebView2EnvironmentWithOptions)) - webviewDLL.findFunction ("CreateCoreWebView2EnvironmentWithOptions")) - { - if (createCoreWebView2EnvironmentWithOptions (nullptr, userDataFolder.c_str(), nullptr, handler) == S_OK) - { - MSG msg; - auto timeoutTimer = SetTimer ({}, {}, 6000, {}); - - while (webviewInitialising.test_and_set() && GetMessage (std::addressof (msg), nullptr, 0, 0)) - { - TranslateMessage (std::addressof (msg)); - DispatchMessage (std::addressof (msg)); - - if (msg.message == WM_TIMER && msg.hwnd == nullptr && msg.wParam == timeoutTimer) - break; - } - - KillTimer ({}, timeoutTimer); - - if (coreWebView == nullptr) - return false; - - EventRegistrationToken token; - coreWebView->add_WebResourceRequested (handler, std::addressof (token)); - - ICoreWebView2Settings* settings = nullptr; - - if (coreWebView->get_Settings (std::addressof (settings)) == S_OK - && settings != nullptr) - { - settings->put_AreDevToolsEnabled (options.enableDebugMode); - - if (! options.customUserAgent.empty()) - { - ICoreWebView2Settings2* settings2 = nullptr; - - // This palaver is needed because __uuidof doesn't work in MINGW - auto guid = IID { 0xee9a0f68, 0xf46c, 0x4e32, { 0xac, 0x23, 0xef, 0x8c, 0xac, 0x22, 0x4d, 0x2a } }; - - if (settings->QueryInterface (guid, (void**) std::addressof (settings2)) == S_OK - && settings2 != nullptr) - { - auto agent = createUTF16StringFromUTF8 (options.customUserAgent); - settings2->put_UserAgent (agent.c_str()); - } - } - } - - return true; - } - } - } - - return false; - } - - bool environmentCreated (ICoreWebView2Environment* env) - { - if (coreWebViewEnvironment != nullptr) - return false; - - env->AddRef(); - coreWebViewEnvironment = env; - return true; - } - - void webviewCreated (ICoreWebView2Controller* controller, ICoreWebView2* view) - { - if (controller != nullptr && view != nullptr) - { - controller->AddRef(); - view->AddRef(); - coreWebViewController = controller; - coreWebView = view; - } - - webviewInitialising.clear(); - } - - HRESULT onResourceRequested (ICoreWebView2WebResourceRequestedEventArgs* args) - { - struct ScopedExit - { - using Fn = std::function; - - explicit ScopedExit (Fn&& fn) : onExit (std::move (fn)) {} - - ScopedExit (const ScopedExit&) = delete; - ScopedExit (ScopedExit&&) = delete; - ScopedExit& operator= (const ScopedExit&) = delete; - ScopedExit& operator= (ScopedExit&&) = delete; - - ~ScopedExit() - { - if (onExit) - onExit(); - } - - Fn onExit; - }; - - auto makeCleanup = [](auto*& ptr, auto cleanup) { return [&ptr, cleanup] { if (ptr) cleanup (ptr); }; }; - auto makeCleanupIUnknown = [](auto*& ptr) { return [&ptr] { if (ptr) ptr->Release(); }; }; - - try - { - if (coreWebViewEnvironment == nullptr) - return E_FAIL; - - ICoreWebView2WebResourceRequest* request = {}; - ScopedExit cleanupRequest (makeCleanupIUnknown (request)); - - if (args->get_Request (std::addressof (request)) != S_OK) - return E_FAIL; - - LPWSTR uri = {}; - ScopedExit cleanupUri (makeCleanup (uri, CoTaskMemFree)); - - if (request->get_Uri (std::addressof (uri)) != S_OK) - return E_FAIL; - - ICoreWebView2WebResourceResponse* response = {}; - ScopedExit cleanupResponse (makeCleanupIUnknown (response)); - - if (coreWebViewEnvironment->CreateWebResourceResponse (nullptr, 404, L"Not Found", nullptr, std::addressof (response)) != S_OK) - return E_FAIL; - - if (args->put_Response (response) != S_OK) - return E_FAIL; - } - catch (...) - { - return E_FAIL; - } - - return S_OK; - } - - //============================================================================== - struct EventHandler : public ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler, - public ICoreWebView2CreateCoreWebView2ControllerCompletedHandler, - public ICoreWebView2WebMessageReceivedEventHandler, - public ICoreWebView2PermissionRequestedEventHandler, - public ICoreWebView2WebResourceRequestedEventHandler - { - EventHandler (Pimpl& p) : ownerPimpl (p) {} - EventHandler (const EventHandler&) = delete; - EventHandler (EventHandler&&) = delete; - EventHandler& operator= (const EventHandler&) = delete; - EventHandler& operator= (EventHandler&&) = delete; - virtual ~EventHandler() {} - - HRESULT STDMETHODCALLTYPE QueryInterface (REFIID, LPVOID*) override { return E_NOINTERFACE; } - ULONG STDMETHODCALLTYPE AddRef() override { return ++refCount; } - ULONG STDMETHODCALLTYPE Release() override { auto newCount = --refCount; if (newCount == 0) delete this; return newCount; } - - HRESULT STDMETHODCALLTYPE Invoke (HRESULT, ICoreWebView2Environment* env) override - { - if (env == nullptr) - return E_FAIL; - - if (! ownerPimpl.environmentCreated (env)) - return E_FAIL; - - env->CreateCoreWebView2Controller (ownerPimpl.hwnd, this); - return S_OK; - } - - HRESULT STDMETHODCALLTYPE Invoke (HRESULT, ICoreWebView2Controller* controller) override - { - if (controller == nullptr) - return E_FAIL; - - ICoreWebView2* view = {}; - controller->get_CoreWebView2 (std::addressof (view)); - - if (view == nullptr) - return E_FAIL; - - EventRegistrationToken token; - view->add_WebMessageReceived (this, std::addressof (token)); - view->add_PermissionRequested (this, std::addressof (token)); - ownerPimpl.webviewCreated (controller, view); - return S_OK; - } - - HRESULT STDMETHODCALLTYPE Invoke (ICoreWebView2* sender, ICoreWebView2WebMessageReceivedEventArgs* args) override - { - if (sender == nullptr) - return E_FAIL; - - LPWSTR message = {}; - args->TryGetWebMessageAsString (std::addressof (message)); - ownerPimpl.owner.invokeBinding (createUTF8FromUTF16 (message)); - sender->PostWebMessageAsString (message); - CoTaskMemFree (message); - return S_OK; - } - - HRESULT STDMETHODCALLTYPE Invoke (ICoreWebView2*, ICoreWebView2PermissionRequestedEventArgs* args) override - { - COREWEBVIEW2_PERMISSION_KIND permissionKind; - args->get_PermissionKind (std::addressof (permissionKind)); - - if (permissionKind == COREWEBVIEW2_PERMISSION_KIND_CLIPBOARD_READ) - args->put_State (COREWEBVIEW2_PERMISSION_STATE_ALLOW); - - return S_OK; - } - - HRESULT STDMETHODCALLTYPE Invoke (ICoreWebView2*, ICoreWebView2WebResourceRequestedEventArgs* args) override - { - return ownerPimpl.onResourceRequested (args); - } - - Pimpl& ownerPimpl; - std::atomic refCount { 0 }; - }; - - //============================================================================== - WebView& owner; - MemoryDLL webviewDLL; - Options options; - ICoreWebView2Environment* coreWebViewEnvironment = nullptr; - ICoreWebView2* coreWebView = nullptr; - ICoreWebView2Controller* coreWebViewController = nullptr; - std::atomic_flag webviewInitialising = ATOMIC_FLAG_INIT; - - //============================================================================== - static std::wstring getUserDataFolder() - { - wchar_t currentExePath[MAX_PATH] = {}; - wchar_t dataPath[MAX_PATH] = {}; - - GetModuleFileNameW (nullptr, currentExePath, MAX_PATH); - auto currentExeName = std::wstring (currentExePath); - auto lastSlash = currentExeName.find_last_of (L'\\'); - - if (lastSlash != std::wstring::npos) - currentExeName = currentExeName.substr (lastSlash + 1); - - if (SHGetFolderPathW (nullptr, CSIDL_APPDATA, nullptr, 0, dataPath) == S_OK) - { - auto path = std::wstring (dataPath); - - if (! path.empty() && path.back() != L'\\') - path += L"\\"; - - return path + currentExeName; - } - - return {}; - } -}; - -//============================================================================== -inline WebView::WebView() : WebView (Options()) {} - -inline WebView::WebView (const Options& options) -{ - pimpl = std::make_unique (*this, options); - - if (! pimpl->loadedOK()) - pimpl.reset(); -} - -inline WebView::~WebView() -{ - pimpl.reset(); -} - -inline bool WebView::loadedOK() const { return pimpl != nullptr; } -inline bool WebView::navigate (const std::string& url) { return pimpl != nullptr && pimpl->navigate (url); } -inline bool WebView::addInitScript (const std::string& script) { return pimpl != nullptr && pimpl->addInitScript (script); } - -inline bool WebView::evaluateJavascript (const std::string& script) -{ - return pimpl != nullptr && pimpl->evaluateJavascript (script); -} - -inline void* WebView::getViewHandle() const { return pimpl != nullptr ? pimpl->getViewHandle() : nullptr; } - -inline bool WebView::bind (CallbackFn&& fn) -{ - if (pimpl == nullptr) - return false; - - binding = std::move (fn); - return true; -} - -inline void WebView::invokeBinding (const std::string& msg) -{ - binding(msg); -} - -END_NAMESPACE_DISTRHO - -//============================================================================== -//============================================================================== -/* - The data monstrosity that follows is a binary dump of the redistributable - WebView2Loader.dll files from Microsoft, embedded here to avoid you - needing to install the DLLs alongside your app. - - More details on how the microsoft webview2 packages work can be found at: - https://docs.microsoft.com/en-us/microsoft-edge/webview2/concepts/distribution - - The copyright notice that goes with the redistributable files is - printed below, and you should note that if you embed this code in your - own app, you'll need to comply with this license! - - | - | Copyright (C) Microsoft Corporation. All rights reserved. - | - | Redistribution and use in source and binary forms, with or without - | modification, are permitted provided that the following conditions are - | met: - | - | * Redistributions of source code must retain the above copyright - | notice, this list of conditions and the following disclaimer. - | * Redistributions in binary form must reproduce the above - | copyright notice, this list of conditions and the following disclaimer - | in the documentation and/or other materials provided with the - | distribution. - | * The name of Microsoft Corporation, or the names of its contributors - | may not be used to endorse or promote products derived from this - | software without specific prior written permission. - | - | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - | - -*/ - -#if CHOC_WINDOWS - -#ifdef CHOC_REGISTER_OPEN_SOURCE_LICENCE - CHOC_REGISTER_OPEN_SOURCE_LICENCE (WebView2Loader, R"( -============================================================================== -Microsoft WebView2Loader.dll redistributable file license: - -Copyright (C) Microsoft Corporation. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. -* The name of Microsoft Corporation, or the names of its contributors -may not be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -)") -#endif - -inline DISTRHO_NAMESPACE::MemoryDLL DISTRHO_NAMESPACE::getWebview2LoaderDLL() -{ - // This is version 1.0.2365.46 - - #ifdef _M_ARM64 - static constexpr unsigned char dllData[138216] = { - 77,90,120,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,120,0,0,0,14,31,186,14,0,180,9,205,33,184,1,76,205,33,84,104,105,115,32,112,114,111,103,114,97,109,32,99,97,110,110, - 111,116,32,98,101,32,114,117,110,32,105,110,32,68,79,83,32,109,111,100,101,46,36,0,0,80,69,0,0,100,170,7,0,88,207,211,101,0,0,0,0,0,0,0,0,240,0,34,32,11,2,14,0,0,52,1,0,0,188,0,0,0,0,0,0,192,89,0,0,0,16,0,0,0,0,0,128,1,0,0,0,0,16,0,0,0,2,0,0, - 10,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,80,2,0,0,4,0,0,63,223,2,0,3,0,96,65,0,0,16,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,16,0,0,0,193,198,1,0,48,1,0,0,241,199,1,0,40,0,0,0,0,48,2,0,136,5,0,0,0,16,2,0,208,11,0,0,0,244, - 1,0,232,39,0,0,0,64,2,0,136,6,0,0,12,191,1,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,168,187,1,0,40,0,0,0,32,81,1,0,64,1,0,0,0,0,0,0,0,0,0,0,136,202,1,0,104,2,0,0,56,197,1,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46,116,101,120,116,0,0,0, - 16,50,1,0,0,16,0,0,0,52,1,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,96,46,114,100,97,116,97,0,0,220,147,0,0,0,80,1,0,0,148,0,0,0,56,1,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,64,46,100,97,116,97,0,0,0,12,28,0,0,0,240,1,0,0,12,0,0,0,204,1,0,0,0,0,0,0, - 0,0,0,0,0,0,0,64,0,0,192,46,112,100,97,116,97,0,0,208,11,0,0,0,16,2,0,0,12,0,0,0,216,1,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,64,46,116,108,115,0,0,0,0,9,0,0,0,0,32,2,0,0,2,0,0,0,228,1,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,192,46,114,115,114,99,0,0,0,136, - 5,0,0,0,48,2,0,0,6,0,0,0,230,1,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,64,46,114,101,108,111,99,0,0,136,6,0,0,0,64,2,0,0,8,0,0,0,236,1,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,1,31,214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 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,4,64,120,66,5,0,52,229,3,0,170,64,4,0,55,161,12,64,242,96,1,0,84,162,44,64,146,95,192,63,241,204,2,0,84,160,116,64,76,1,168,113,110,34,0,38,30,34,1,0,52,165,64,0,145,165,236,124,146,31,32,3,213, - 160,116,223,76,1,168,113,110,34,0,38,30,162,255,255,53,165,64,0,209,1,3,0,156,0,152,96,78,0,28,33,78,0,168,112,110,2,0,38,30,66,8,0,82,160,0,0,203,64,4,128,139,192,3,95,214,33,64,0,209,225,7,129,203,162,36,64,120,194,0,0,52,33,4,0,241,172,255, - 255,84,236,255,255,23,162,36,64,120,226,255,255,53,165,8,0,209,160,0,0,203,0,252,65,147,192,3,95,214,0,0,128,210,192,3,95,214,7,0,6,0,5,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,229,3,0,170,96,4,0,55,63,32,0,241,35,4,0,84,163,12,64,242,192,1,0,84,162,44,64,146,95,192,63,241,140,4,0,84,99,64,0,209,227,3,3,203,160,116,64,76,1,168,113,110,34,0,38,30,130,5,0,52,33,4,131,203,165,0,3,139, - 63,32,0,241,67,2,0,84,35,252,67,147,160,116,223,76,1,168,113,110,34,0,38,30,66,4,0,52,99,4,0,241,97,255,255,84,33,8,64,242,192,1,0,84,33,32,0,209,225,3,1,203,165,4,1,203,160,116,223,76,1,168,113,110,34,0,38,30,226,2,0,52,6,0,0,20,161,0,0,180, - 162,36,64,120,226,1,0,52,33,4,0,241,168,255,255,84,160,0,0,203,0,252,65,147,192,3,95,214,99,64,0,209,227,7,131,203,162,36,64,120,194,0,0,52,33,4,0,241,160,0,0,84,99,4,0,241,108,255,255,84,221,255,255,23,165,8,0,209,160,0,0,203,0,252,65,147,192, - 3,95,214,165,64,0,209,33,1,0,156,0,152,96,78,0,28,33,78,0,168,112,110,2,0,38,30,66,8,0,82,160,0,0,203,64,4,128,139,192,3,95,214,7,0,6,0,5,0,4,0,3,0,2,0,1,0,0,0,0,0,0,0,255,131,0,209,3,164,128,210,99,50,163,242,227,3,0,169,225,11,1,169,255,131, - 0,145,192,3,95,214,192,3,95,214,243,83,186,169,245,91,1,169,247,99,2,169,249,107,3,169,251,115,4,169,253,123,5,169,253,67,1,145,115,80,64,169,117,88,65,169,119,96,66,169,121,104,67,169,123,112,68,169,97,40,64,249,64,0,63,214,253,123,69,169,251, - 115,68,169,249,107,67,169,247,99,66,169,245,91,65,169,243,83,198,168,192,3,95,214,243,83,186,169,245,91,1,169,247,99,2,169,249,107,3,169,251,115,4,169,253,123,5,169,253,67,1,145,115,80,64,169,117,88,65,169,119,96,66,169,121,104,67,169,123,112, - 68,169,97,40,64,249,64,0,63,214,253,123,69,169,251,115,68,169,249,107,67,169,247,99,66,169,245,91,65,169,243,83,198,168,192,3,95,214,0,0,0,0,0,0,0,0,255,67,0,209,241,0,0,208,49,10,64,249,241,99,49,203,241,7,0,249,192,3,95,214,0,0,0,0,0,0,0,0, - 241,0,0,208,240,7,64,249,49,10,64,249,240,99,48,203,31,2,17,235,129,0,0,84,255,67,0,145,192,3,95,214,31,32,3,213,224,3,16,170,2,0,0,20,0,0,0,0,253,123,1,169,253,67,0,145,106,1,0,148,253,123,65,169,192,3,95,214,0,0,0,0,0,0,0,0,0,0,0,0,3,0,1,203, - 127,0,2,235,195,10,0,84,195,1,0,180,33,0,128,249,95,32,0,241,227,3,0,170,34,2,0,84,98,0,16,54,32,32,255,13,96,32,191,13,98,0,8,54,32,0,255,13,96,0,191,13,98,0,0,54,34,0,64,57,98,0,0,57,192,3,95,214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,66,128,0,241,3,5,0,84,66,128,0,241,99,4,0,84,33,32,128,249,66,0,1,241,195,3,0,84,63,12,64,242,97,0,0,84,127,12,64,242,96,1,0,84,32,32,223,76,36,32,223,76,33,64,128,249,33,96,128,249,96,32,159,76,100,32,159,76,66,0,2,241,34,255,255,84,98, - 2,48,54,16,0,0,20,32,4,64,173,34,12,65,173,36,20,66,173,38,28,67,173,33,0,2,145,33,64,128,249,33,96,128,249,96,4,0,173,98,12,1,173,100,20,2,173,102,28,3,173,99,0,2,145,66,0,2,241,98,254,255,84,98,0,48,54,32,32,223,76,96,32,159,76,98,0,40,54, - 32,160,223,76,96,160,159,76,98,0,32,54,32,112,223,76,96,112,159,76,98,0,24,54,32,112,223,12,96,112,159,12,98,0,16,54,32,32,255,13,96,32,191,13,98,0,8,54,32,0,255,13,96,0,191,13,98,0,0,54,34,0,64,57,98,0,0,57,192,3,95,214,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,0,2,139,33,240,159,248,95,32,0,241,3,0,2,139,130,2,0,84,162,0,16,54,33,16,0,209,99,16,0,209,32,32,96,13,96,32,32,13,162,0,8,54,33,8,0,209,99,8,0,209,32,0,96,13,96,0,32,13,98,0,0,54,34,252,95,56,98,252,31, - 56,192,3,95,214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,128,0,241,227,5,0,84,66,128,0,241,3,5,0,84,33,240,155,248,66,0,1,241,3,4,0,84,63,12,64,242,97,0,0,84,127,12,64,242,192,1,0,84,33,0,1,209,32,32,64,76,33,0,1,209,36,32,64,76,33,240,151, - 248,33,240,147,248,99,0,1,209,96,32,0,76,99,0,1,209,100,32,0,76,66,0,2,241,162,254,255,84,15,0,0,20,33,0,2,209,38,28,67,173,36,20,66,173,99,0,2,209,34,12,65,173,32,4,64,173,33,240,151,248,33,240,147,248,102,28,3,173,100,20,2,173,98,12,1,173, - 96,4,0,173,66,0,2,241,98,254,255,84,162,0,48,54,33,0,1,209,99,0,1,209,32,32,64,76,96,32,0,76,162,0,40,54,33,128,0,209,99,128,0,209,32,160,64,76,96,160,0,76,162,0,32,54,33,64,0,209,99,64,0,209,32,112,64,76,96,112,0,76,162,0,24,54,33,32,0,209, - 99,32,0,209,32,112,64,12,96,112,0,12,162,0,16,54,33,16,0,209,99,16,0,209,32,32,96,13,96,32,32,13,162,0,8,54,33,8,0,209,99,8,0,209,32,0,96,13,96,0,32,13,98,0,0,54,34,252,95,56,98,252,31,56,192,3,95,214,33,0,128,82,59,0,0,20,0,0,0,0,0,0,0,0,16, - 0,176,210,241,0,0,208,48,114,5,185,16,0,128,210,80,66,56,213,16,14,66,211,16,1,0,180,16,6,56,213,16,94,84,211,31,10,0,241,240,55,159,154,16,2,97,178,48,114,5,185,224,1,31,214,208,255,175,210,16,90,74,57,251,255,255,23,0,0,0,0,0,0,0,0,0,0,0,0, - 240,0,0,208,16,114,69,185,112,0,0,54,0,48,225,184,192,3,95,214,240,0,0,180,2,252,95,136,67,0,1,42,3,252,16,136,176,255,255,53,224,3,2,42,192,3,95,214,143,254,255,16,223,255,255,23,0,0,0,0,0,0,0,0,240,0,0,208,16,114,69,185,112,0,0,54,0,128,225, - 184,192,3,95,214,208,0,0,180,2,252,95,136,1,252,16,136,208,255,255,53,224,3,2,42,192,3,95,214,175,254,255,16,208,255,255,23,0,0,0,0,0,0,0,0,0,0,0,0,1,0,128,18,3,0,0,20,0,0,0,0,0,0,0,0,240,0,0,208,16,114,69,185,144,0,0,54,0,0,225,184,0,0,1,11, - 192,3,95,214,240,0,0,180,2,252,95,136,67,0,1,11,3,252,16,136,176,255,255,53,224,3,3,42,192,3,95,214,111,254,255,16,186,255,255,23,0,0,0,0,225,3,33,42,240,0,0,208,16,114,69,185,112,0,0,54,0,16,225,184,192,3,95,214,240,0,0,180,2,252,95,136,67, - 0,33,10,3,252,16,136,176,255,255,53,224,3,2,42,192,3,95,214,143,254,255,16,170,255,255,23,0,0,0,0,16,0,64,185,177,3,128,210,17,0,184,242,31,2,17,107,129,1,0,84,80,132,64,249,17,2,64,185,49,106,27,18,15,72,136,82,15,167,186,114,255,1,17,107,161, - 0,0,84,16,18,0,145,80,132,0,249,0,0,128,82,192,3,95,214,32,0,128,82,192,3,95,214,0,0,0,0,0,0,0,0,240,0,0,208,16,114,69,185,112,0,0,54,0,128,225,248,192,3,95,214,208,0,0,180,2,252,95,200,1,252,16,200,208,255,255,53,224,3,2,170,192,3,95,214,175, - 254,255,16,136,255,255,23,0,0,0,0,0,0,0,0,0,0,0,0,255,195,1,209,253,123,1,169,243,83,2,169,245,91,3,169,247,99,4,169,249,107,5,169,251,115,6,169,33,0,64,249,225,3,0,249,243,3,0,170,244,3,1,170,245,3,2,170,246,3,3,170,226,3,3,170,106,254,255, - 151,224,3,19,170,225,3,20,170,226,3,21,170,227,3,22,170,83,80,64,169,85,88,65,169,87,96,66,169,89,104,67,169,91,112,68,169,93,40,64,249,0,0,63,214,243,3,0,170,100,254,255,151,224,3,19,170,225,15,64,249,66,0,128,210,89,254,255,151,224,3,19,170, - 251,115,70,169,249,107,69,169,247,99,68,169,245,91,67,169,243,83,66,169,253,123,65,169,255,195,1,145,192,3,95,214,0,0,0,0,0,0,0,0,0,0,0,0,240,0,0,208,16,66,0,145,16,2,64,249,31,0,16,235,65,0,0,84,192,3,95,214,253,123,190,169,253,3,0,145,240, - 0,0,208,16,66,0,145,241,0,0,208,49,34,0,145,16,2,64,249,49,2,64,249,240,71,1,169,165,68,0,148,0,0,62,212,0,0,0,0,0,0,0,0,0,0,0,0,234,3,0,170,32,12,1,78,1,28,160,78,2,28,160,78,3,28,160,78,95,128,0,241,172,6,0,84,1,0,102,158,136,0,0,16,9,105, - 98,56,8,9,9,139,0,1,31,214,42,22,18,28,25,21,17,13,36,33,30,27,24,20,16,12,41,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,113,159,12,64,33,191,13,64,33,0,13,192,3,95,214,64,113,159,12,64,33,191,13,64,1,32, - 13,192,3,95,214,64,113,159,12,64,33,191,13,65,1,0,57,192,3,95,214,64,113,159,12,64,33,32,13,192,3,95,214,64,113,159,12,64,33,0,13,192,3,95,214,64,113,159,12,64,1,32,13,192,3,95,214,64,113,159,12,65,1,0,57,192,3,95,214,64,113,0,12,192,3,95,214, - 72,64,0,209,8,1,10,139,0,113,0,76,64,113,0,76,192,3,95,214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,192,128,82,95,0,8,235,234,1,0,84,73,252,69,147,41,5,0,241,64,161,159,76,204,255,255,84,66,16,64,146,130,248,255,181,192,3,95,214,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,13,64,242,160,0,0,84,8,65,0,209,232,3,8,203,66,0,8,203,64,113,136,76,73,252,70,147,31,32,3,213,31,32,3,213,31,32,3,213,31,32,3,213,31,32,3,213,41,5,0,241,64,33,159,76,204,255,255,84,66,20,64,146,66,251, - 255,180,95,128,0,241,43,245,255,84,64,161,159,76,66,128,0,241,193,244,255,84,192,3,95,214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,1,170,127,12,64,242,193,30,0,84,95,64,0,241,140,24,0,84,67,32,0,16,104,104,98,56,99,8,8,203,96,0,31,214,0,0, - 0,0,0,0,0,0,0,0,0,0,3,40,193,168,40,36,193,168,31,1,3,235,1,28,0,84,74,13,192,218,41,13,192,218,64,1,9,235,224,7,159,26,0,36,128,90,192,3,95,214,3,132,64,248,40,132,64,248,31,1,3,235,224,0,0,84,99,12,192,218,8,13,192,218,96,0,8,235,224,7,159, - 26,0,36,128,90,192,3,95,214,3,68,64,184,40,68,64,184,31,1,3,235,224,0,0,84,99,8,192,218,8,9,192,218,96,0,8,235,224,7,159,26,0,36,128,90,192,3,95,214,3,20,64,56,40,20,64,56,96,0,8,235,224,7,159,26,0,36,128,90,192,3,95,214,3,132,64,248,40,132, - 64,248,31,1,3,235,224,0,0,84,99,12,192,218,8,13,192,218,96,0,8,235,224,7,159,26,0,36,128,90,192,3,95,214,3,68,64,184,40,68,64,184,31,1,3,235,224,0,0,84,99,8,192,218,8,9,192,218,96,0,8,235,224,7,159,26,0,36,128,90,192,3,95,214,3,36,64,120,40, - 36,64,120,127,0,8,235,224,0,0,84,99,4,192,218,8,5,192,218,96,0,8,235,224,7,159,26,0,36,128,90,192,3,95,214,3,20,64,56,40,20,64,56,96,0,8,235,224,7,159,26,0,36,128,90,192,3,95,214,3,132,64,248,40,132,64,248,31,1,3,235,224,0,0,84,99,12,192,218, - 8,13,192,218,96,0,8,235,224,7,159,26,0,36,128,90,192,3,95,214,3,68,64,184,40,68,64,184,31,1,3,235,224,0,0,84,99,8,192,218,8,9,192,218,96,0,8,235,224,7,159,26,0,36,128,90,192,3,95,214,3,36,64,120,40,36,64,120,99,4,192,218,8,5,192,218,96,0,8,235, - 224,7,159,26,0,36,128,90,192,3,95,214,0,0,128,210,192,3,95,214,3,132,64,248,40,132,64,248,31,1,3,235,224,0,0,84,99,12,192,218,8,13,192,218,96,0,8,235,224,7,159,26,0,36,128,90,192,3,95,214,3,68,64,184,40,68,64,184,99,8,192,218,8,9,192,218,96, - 0,8,235,224,7,159,26,0,36,128,90,192,3,95,214,3,132,64,248,40,132,64,248,99,12,192,218,8,13,192,218,96,0,8,235,224,7,159,26,0,36,128,90,192,3,95,214,3,132,64,248,40,132,64,248,31,1,3,235,224,0,0,84,99,12,192,218,8,13,192,218,96,0,8,235,224,7, - 159,26,0,36,128,90,192,3,95,214,3,20,64,56,40,20,64,56,96,0,8,235,224,7,159,26,0,36,128,90,192,3,95,214,3,132,64,248,40,132,64,248,31,1,3,235,224,0,0,84,99,12,192,218,8,13,192,218,96,0,8,235,224,7,159,26,0,36,128,90,192,3,95,214,3,36,64,120, - 40,36,64,120,99,4,192,218,8,5,192,218,96,0,8,235,224,7,159,26,0,36,128,90,192,3,95,214,3,132,64,248,40,132,64,248,31,1,3,235,224,0,0,84,99,12,192,218,8,13,192,218,96,0,8,235,224,7,159,26,0,36,128,90,192,3,95,214,3,36,64,120,40,36,64,120,127, - 0,8,235,224,0,0,84,99,4,192,218,8,5,192,218,96,0,8,235,224,7,159,26,0,36,128,90,192,3,95,214,3,20,64,56,40,20,64,56,96,0,8,235,224,7,159,26,0,36,128,90,192,3,95,214,95,128,0,241,43,2,0,84,66,128,0,209,3,40,193,168,40,36,193,168,31,1,3,235,33, - 4,0,84,95,1,9,235,33,3,0,84,3,40,193,168,40,36,193,168,31,1,3,235,97,3,0,84,95,1,9,235,97,2,0,84,66,128,0,241,106,254,255,84,66,128,0,145,95,64,0,241,77,229,255,84,66,32,0,209,3,132,64,248,40,132,64,248,31,1,3,235,225,1,0,84,66,32,0,241,108, - 255,255,84,32,244,255,84,66,32,0,145,67,4,0,16,104,104,98,56,99,8,8,203,96,0,31,214,74,13,192,218,41,13,192,218,64,1,9,235,224,7,159,26,0,36,128,90,192,3,95,214,99,12,192,218,8,13,192,218,96,0,8,235,224,7,159,26,0,36,128,90,192,3,95,214,0,0, - 0,0,0,0,0,0,0,0,0,0,98,0,0,181,0,0,128,210,192,3,95,214,66,4,0,209,3,20,64,56,40,20,64,56,127,0,8,107,129,0,0,84,98,255,255,181,0,0,128,210,192,3,95,214,96,0,8,107,224,7,159,26,0,36,128,90,192,3,95,214,151,221,159,195,139,231,169,205,131,123, - 107,89,149,241,179,215,251,0,0,0,81,10,64,249,240,115,47,235,240,51,144,154,31,2,17,235,67,0,0,84,192,3,95,214,16,206,116,146,49,6,64,209,63,2,64,249,63,2,16,235,161,255,255,84,192,3,95,214,243,15,30,248,253,251,0,169,253,35,0,145,255,131,0, - 209,232,0,0,208,227,3,0,170,8,9,64,249,168,3,31,248,104,12,66,248,105,128,94,248,42,37,127,169,234,167,0,169,72,3,0,181,1,136,2,169,232,0,0,208,243,3,0,170,8,105,69,249,1,0,0,176,33,224,0,145,224,35,0,145,226,3,19,170,0,1,63,214,96,2,0,53,98, - 6,64,249,232,0,0,208,96,18,64,249,65,0,128,82,67,0,64,121,8,109,69,249,0,1,63,214,243,3,31,42,160,3,95,248,76,254,255,151,224,3,19,42,255,131,0,145,253,251,64,169,243,7,66,248,192,3,95,214,160,0,128,82,96,0,62,212,32,0,32,212,232,0,176,82,31, - 4,0,113,8,60,0,51,19,176,136,26,242,255,255,23,253,123,191,169,253,3,0,145,70,1,0,180,63,4,0,113,65,1,0,84,72,28,0,114,9,32,128,82,195,16,1,169,40,5,136,26,200,0,0,185,199,20,64,249,199,0,0,181,253,123,193,168,192,3,95,214,129,255,255,53,223, - 0,0,185,250,255,255,23,200,0,0,208,198,24,64,249,239,3,7,170,8,81,66,249,0,1,63,214,253,123,193,168,224,0,31,214,243,15,30,248,253,251,0,169,253,35,0,145,255,131,0,209,232,0,0,176,41,44,0,145,8,9,64,249,168,3,31,248,40,0,64,57,42,48,64,248,11, - 4,64,249,8,29,8,83,234,11,0,249,42,16,64,120,171,0,0,249,11,4,64,249,232,43,1,41,234,243,1,50,104,1,64,121,169,8,0,249,73,0,128,82,203,0,0,176,107,33,57,145,168,36,1,41,41,0,128,82,40,176,64,120,225,35,0,145,168,36,3,41,200,0,0,176,8,33,60,145, - 8,1,11,75,234,7,0,185,232,7,0,185,232,0,0,176,0,16,64,249,8,117,69,249,0,1,63,214,243,3,0,42,160,3,95,248,255,253,255,151,224,3,19,42,255,131,0,145,253,251,64,169,243,7,66,248,192,3,95,214,192,3,95,214,243,83,189,169,245,11,0,249,253,251,1,169, - 253,99,0,145,255,195,0,209,232,0,0,176,201,0,0,144,41,193,58,145,8,9,64,249,243,3,2,170,168,3,30,248,200,0,0,144,8,1,60,145,233,35,0,169,200,0,0,144,8,65,61,145,201,0,0,144,41,129,62,145,232,39,1,169,200,0,0,144,8,193,63,145,232,19,0,249,129, - 1,0,54,160,3,94,248,212,0,0,176,148,2,1,145,222,253,255,151,224,3,19,170,225,3,20,170,255,195,0,145,253,251,65,169,245,11,64,249,243,83,195,168,89,10,0,20,232,3,0,145,20,217,96,248,224,3,20,170,151,251,255,151,245,3,0,170,1,168,0,145,224,3,19, - 170,38,10,0,148,193,0,0,176,33,128,3,145,224,3,19,170,66,5,128,82,92,10,0,148,160,3,94,248,200,253,255,151,224,3,19,170,225,3,20,170,226,3,21,170,255,195,0,145,253,251,65,169,245,11,64,249,243,83,195,168,147,10,0,20,243,83,190,169,253,123,1, - 169,253,67,0,145,193,0,0,176,33,240,5,145,243,3,0,170,124,10,0,148,193,0,0,144,33,64,57,145,224,3,19,170,120,10,0,148,224,3,19,170,207,10,0,148,200,0,0,208,8,181,69,249,0,1,63,214,31,4,0,49,32,4,0,84,224,3,19,170,200,10,0,148,200,0,0,208,33, - 4,128,82,226,0,128,82,8,77,69,249,1,2,160,114,227,3,31,170,100,0,128,82,5,16,128,82,230,3,31,170,243,3,0,170,0,1,63,214,31,4,0,177,192,0,0,84,200,0,0,208,8,73,69,249,0,1,63,214,32,0,128,82,14,0,0,20,212,0,0,208,192,0,0,176,0,96,12,145,148,42, - 70,249,128,2,63,214,200,0,0,208,224,3,19,170,8,45,70,249,0,1,63,214,192,0,0,176,0,160,7,145,128,2,63,214,224,3,31,42,253,123,65,169,243,83,194,168,192,3,95,214,243,83,188,169,245,91,1,169,247,19,0,249,253,251,2,169,253,163,0,145,243,3,1,170, - 244,3,0,170,224,3,1,170,129,32,128,82,215,9,0,148,224,3,19,170,127,10,0,148,245,3,0,170,224,3,19,170,151,10,0,148,215,0,0,208,225,3,0,170,224,3,20,170,247,194,69,249,226,3,21,42,224,2,63,214,245,3,0,42,224,3,19,170,115,10,0,148,214,0,0,208,31, - 64,53,235,214,190,69,249,33,2,0,84,192,2,63,214,31,232,1,113,193,1,0,84,224,3,19,170,1,0,130,82,191,9,0,148,224,3,19,170,103,10,0,148,245,3,0,170,224,3,19,170,127,10,0,148,225,3,0,170,224,3,20,170,226,3,21,42,224,2,63,214,245,3,0,42,85,1,0,52, - 224,3,19,170,92,10,0,148,31,64,53,235,201,0,0,84,225,3,21,42,224,3,19,170,15,10,0,148,224,3,31,42,6,0,0,20,192,2,63,214,232,0,176,82,31,4,0,113,8,60,0,51,0,176,136,26,253,251,66,169,247,19,64,249,245,91,65,169,243,83,196,168,192,3,95,214,243, - 83,189,169,245,11,0,249,253,251,1,169,253,99,0,145,255,131,0,209,232,0,0,176,243,3,1,170,244,3,0,170,8,9,64,249,224,3,1,170,129,32,128,82,232,15,0,249,148,9,0,148,224,3,19,170,225,3,20,170,188,9,0,148,224,3,19,170,84,10,0,148,245,3,0,170,224, - 3,19,170,56,10,0,148,31,12,0,241,67,2,0,84,168,6,64,121,31,233,0,113,65,1,0,84,168,10,64,121,31,113,1,113,129,1,0,84,168,2,64,121,8,121,26,18,8,5,1,81,31,105,0,113,226,0,0,84,46,0,0,20,31,113,1,113,129,0,0,84,168,2,64,121,31,113,1,113,32,5,0, - 84,232,243,1,178,224,3,0,145,232,163,0,169,232,3,0,249,87,9,0,148,225,3,0,145,224,3,31,170,145,255,255,151,0,7,248,55,224,3,0,145,26,10,0,148,245,3,0,170,224,3,0,145,48,10,0,148,225,3,0,170,224,3,19,170,226,3,21,170,162,9,0,148,224,3,0,145,42, - 10,0,148,129,11,128,82,180,20,0,148,160,4,0,180,245,3,0,170,224,3,0,145,36,10,0,148,168,2,0,203,224,3,0,145,8,9,0,145,21,253,65,147,31,10,0,148,225,3,0,170,224,3,19,170,226,3,21,170,145,9,0,148,224,3,19,170,225,3,20,170,191,9,0,148,224,3,0,145, - 55,9,0,148,224,3,19,170,57,255,255,151,128,2,0,55,212,0,0,208,192,0,0,176,0,192,6,145,148,42,70,249,128,2,63,214,224,3,19,170,12,10,0,148,200,0,0,208,8,45,70,249,0,1,63,214,192,0,0,176,0,160,7,145,128,2,63,214,85,0,128,82,245,0,176,114,14,0, - 0,20,181,0,136,82,21,0,176,114,9,0,0,20,245,3,31,42,9,0,0,20,200,0,0,208,245,3,0,42,192,0,0,176,0,0,6,145,8,41,70,249,0,1,63,214,224,3,0,145,23,9,0,148,224,15,64,249,216,252,255,151,224,3,21,42,255,131,0,145,253,251,65,169,245,11,64,249,243, - 83,195,168,192,3,95,214,243,83,187,169,245,91,1,169,247,99,2,169,249,107,3,169,253,123,4,169,253,3,1,145,255,3,1,209,232,0,0,176,245,3,0,170,192,0,0,176,0,192,7,145,8,9,64,249,243,3,1,170,249,0,176,82,232,31,0,249,91,0,0,148,248,3,0,170,192, - 0,0,176,0,32,8,145,87,0,0,148,246,3,0,170,192,0,0,176,0,128,8,145,83,0,0,148,72,6,128,82,55,3,8,42,24,4,0,180,246,3,0,180,244,3,0,170,160,3,0,180,218,0,0,208,239,3,24,170,255,55,0,185,72,83,66,249,0,1,63,214,225,211,0,145,224,3,21,170,0,3,63, - 214,192,3,0,52,247,3,0,42,232,243,1,178,224,99,0,145,232,35,2,169,232,15,0,249,223,8,0,148,225,3,23,42,224,99,0,145,160,9,0,148,128,3,0,55,200,0,0,208,8,189,69,249,0,1,63,214,8,60,0,18,31,4,0,113,8,1,25,42,23,176,136,26,224,99,0,145,213,8,0, - 148,224,31,64,249,150,252,255,151,224,3,23,42,255,3,1,145,253,123,68,169,249,107,67,169,247,99,66,169,245,91,65,169,243,83,197,168,192,3,95,214,200,0,0,208,8,189,69,249,0,1,63,214,8,60,0,18,31,4,0,113,8,1,25,42,23,176,136,26,239,255,255,23,224, - 99,0,145,160,9,0,148,72,83,66,249,225,55,64,185,239,3,22,170,227,3,0,170,0,1,63,214,224,3,21,170,226,3,23,42,192,2,63,214,96,251,255,52,224,99,0,145,255,11,0,249,255,15,0,185,147,9,0,148,72,83,66,249,239,3,20,170,0,1,63,214,193,0,0,176,33,192, - 8,145,226,67,0,145,227,51,0,145,128,2,63,214,192,249,255,52,225,11,64,249,129,249,255,180,224,3,19,170,236,8,0,148,247,3,31,42,207,255,255,23,243,15,30,248,253,251,0,169,253,35,0,145,232,0,0,176,73,46,64,249,225,3,0,170,8,65,75,185,243,0,0,208, - 40,121,104,248,233,0,0,208,41,169,75,185,8,1,64,145,8,5,64,185,63,1,8,107,108,1,0,84,96,210,69,249,192,0,0,180,194,0,0,208,66,208,69,249,253,251,64,169,243,7,66,248,64,0,31,214,253,251,64,169,243,7,66,248,192,3,95,214,243,0,0,208,115,162,46, - 145,161,11,0,249,224,3,19,170,108,10,0,148,104,2,64,185,161,11,64,249,243,0,0,208,31,5,0,49,161,253,255,84,211,0,0,208,192,0,0,176,0,0,13,145,115,30,70,249,225,3,31,170,2,0,129,82,96,2,63,214,192,0,0,181,192,0,0,176,0,32,14,145,225,3,31,170, - 2,0,129,82,96,2,63,214,243,0,0,208,96,210,5,249,224,0,0,208,0,160,46,145,137,10,0,148,161,11,64,249,217,255,255,23,243,83,190,169,253,123,1,169,253,67,0,145,255,131,0,209,232,0,0,176,212,0,0,208,8,9,64,249,232,15,0,249,255,11,0,249,96,1,0,180, - 8,0,64,249,137,82,66,249,8,1,64,249,239,3,8,170,32,1,63,214,193,0,0,176,33,0,10,145,226,67,0,145,0,1,63,214,64,2,0,52,243,3,31,42,224,11,64,249,0,1,0,180,255,11,0,249,137,82,66,249,8,0,64,249,8,9,64,249,239,3,8,170,32,1,63,214,0,1,63,214,224, - 15,64,249,17,252,255,151,224,3,19,42,255,131,0,145,253,123,65,169,243,83,194,168,192,3,95,214,224,11,64,249,192,253,255,180,8,0,64,249,137,82,66,249,255,15,0,185,8,13,64,249,239,3,8,170,32,1,63,214,225,51,0,145,0,1,63,214,232,15,64,185,31,5, - 0,113,243,23,159,26,64,252,255,53,226,255,255,23,243,83,189,169,245,11,0,249,253,251,1,169,253,99,0,145,255,67,1,209,232,0,0,176,244,3,0,170,245,243,1,178,8,9,64,249,224,195,0,145,243,3,1,170,168,3,30,248,245,215,3,169,245,27,0,249,40,8,0,148, - 224,99,0,145,245,87,2,169,245,15,0,249,36,8,0,148,224,3,0,145,245,215,0,169,245,3,0,249,32,8,0,148,128,2,64,249,160,1,0,180,8,0,64,121,104,1,0,52,225,195,0,145,151,254,255,151,96,0,0,52,244,3,0,42,13,0,0,20,224,195,0,145,247,8,0,148,225,99,0, - 145,8,255,255,151,6,0,0,20,225,195,0,145,226,99,0,145,227,3,0,145,224,3,20,170,44,0,0,148,244,3,0,42,32,2,0,52,224,3,31,170,96,2,0,249,224,3,0,145,10,8,0,148,224,99,0,145,8,8,0,148,224,195,0,145,6,8,0,148,160,3,94,248,199,251,255,151,224,3,20, - 42,255,67,1,145,253,251,65,169,245,11,64,249,243,83,195,168,192,3,95,214,224,3,0,145,196,8,0,148,192,1,0,55,193,0,0,176,33,64,10,145,224,99,0,145,125,8,0,148,224,3,0,145,187,8,0,148,244,3,0,170,224,3,0,145,209,8,0,148,225,3,0,170,224,99,0,145, - 226,3,20,170,132,8,0,148,224,99,0,145,178,8,0,148,244,3,0,170,224,99,0,145,200,8,0,148,225,3,20,170,200,8,0,148,244,3,31,42,217,255,255,23,243,83,186,169,245,91,1,169,247,99,2,169,249,107,3,169,251,115,4,169,253,123,5,169,253,67,1,145,255,3, - 2,209,232,0,0,176,243,3,3,170,244,3,2,170,8,9,64,249,245,3,1,170,246,3,0,170,252,3,31,42,248,243,1,178,247,0,0,176,168,131,26,248,8,0,0,20,224,67,1,145,208,7,0,148,224,99,0,145,206,7,0,148,156,7,0,17,159,23,0,113,160,23,0,84,200,26,64,185,138, - 0,128,82,201,118,64,57,74,1,28,75,31,5,0,113,89,1,156,26,137,0,0,52,200,34,64,185,8,37,217,26,136,254,7,54,200,0,0,176,9,129,14,145,63,3,0,113,200,0,0,176,8,1,16,145,224,99,0,145,233,35,5,169,200,0,0,176,9,129,17,145,200,0,0,176,8,1,19,145,248, - 99,2,169,233,35,6,169,200,114,64,57,201,0,0,176,41,129,20,145,248,15,0,249,233,59,0,249,4,9,64,122,232,67,1,145,26,89,121,248,251,7,159,26,167,7,0,148,226,99,0,145,224,3,25,42,225,3,27,42,113,253,255,151,224,99,0,145,131,8,0,148,225,3,27,42, - 226,3,31,42,227,3,20,170,228,3,21,170,75,3,0,148,0,19,0,55,224,99,0,145,123,8,0,148,225,3,27,42,34,0,128,82,227,3,20,170,228,3,21,170,67,3,0,148,0,18,0,55,248,99,4,169,232,66,75,185,73,46,64,249,40,121,104,248,233,0,0,208,41,185,75,185,8,1,64, - 145,8,5,64,185,63,1,8,107,76,27,0,84,232,0,0,208,8,217,69,249,72,247,255,180,232,66,75,185,73,46,64,249,40,121,104,248,233,0,0,208,41,201,75,185,8,1,64,145,8,5,64,185,63,1,8,107,172,28,0,84,232,0,0,208,8,225,69,249,200,245,255,180,232,0,0,208, - 219,0,0,208,255,27,0,249,8,217,69,249,105,83,66,249,239,3,8,170,32,1,63,214,231,195,0,145,224,3,31,170,225,3,26,170,226,3,31,170,227,3,31,42,228,3,31,42,229,3,31,170,230,3,31,42,0,1,63,214,224,2,248,55,232,0,0,208,105,83,66,249,224,27,64,249, - 8,225,69,249,255,43,0,249,239,3,8,170,32,1,63,214,227,67,1,145,225,3,31,42,226,3,31,42,228,3,31,170,0,1,63,214,200,0,0,208,251,27,64,249,8,213,69,249,0,1,63,214,200,0,0,208,225,3,31,42,226,3,27,170,8,241,69,249,0,1,63,214,255,27,0,249,232,66, - 75,185,73,46,64,249,40,121,104,248,233,0,0,208,41,217,75,185,8,1,64,145,8,5,64,185,63,1,8,107,44,25,0,84,232,0,0,208,201,0,0,208,8,233,69,249,72,239,255,180,41,81,66,249,234,243,1,50,239,3,8,170,255,43,7,41,32,1,63,214,32,0,128,82,225,227,0, - 145,227,243,0,145,0,3,160,114,226,3,31,170,0,1,63,214,31,232,1,113,161,237,255,84,232,59,64,185,104,237,255,52,224,67,1,145,248,227,5,169,248,43,0,249,51,7,0,148,225,59,64,185,224,67,1,145,244,7,0,148,32,236,7,54,232,0,0,208,224,67,1,145,27, - 233,69,249,13,8,0,148,200,0,0,208,239,3,27,170,226,3,0,170,8,81,66,249,0,1,63,214,32,0,128,82,225,227,0,145,227,243,0,145,0,3,160,114,96,3,63,214,64,234,255,53,224,67,1,145,243,11,0,249,255,7,0,148,232,63,64,185,136,1,0,52,243,3,31,42,27,184, - 0,145,96,163,94,248,225,3,26,170,148,24,0,148,64,6,0,52,232,63,64,185,115,6,0,17,123,67,1,145,127,2,8,107,3,255,255,84,224,67,1,145,17,7,0,148,243,11,64,249,64,255,255,23,200,0,0,208,192,0,0,176,0,128,10,145,8,41,70,249,0,1,63,214,83,0,128,82, - 243,0,176,114,22,0,0,20,83,2,0,180,200,0,0,176,8,225,4,145,201,0,0,176,41,1,5,145,224,3,19,170,232,39,5,169,200,0,0,176,8,65,5,145,201,0,0,176,41,97,5,145,232,39,6,169,200,0,0,176,8,161,5,145,232,59,0,249,232,67,1,145,1,89,121,248,58,7,0,148, - 224,99,0,145,243,6,0,148,243,3,31,42,160,131,90,248,179,250,255,151,224,3,19,42,255,3,2,145,253,123,69,169,251,115,68,169,249,107,67,169,247,99,66,169,245,91,65,169,243,83,198,168,192,3,95,214,122,3,64,121,104,227,95,120,224,3,21,170,105,195, - 95,120,106,163,95,120,97,163,93,248,250,35,8,41,233,43,9,41,35,7,0,148,224,67,1,145,220,6,0,148,224,3,1,145,225,3,21,170,1,3,0,148,243,11,64,249,251,3,0,42,84,4,0,180,59,4,0,54,224,3,20,170,225,1,128,82,236,6,0,148,225,67,1,145,224,3,26,42,98, - 1,128,82,67,1,128,82,248,227,5,248,248,99,5,169,232,23,0,148,96,223,255,53,225,67,1,145,224,3,20,170,251,15,0,185,11,7,0,148,123,0,128,82,225,67,1,145,224,3,26,42,98,1,128,82,67,1,128,82,221,23,0,148,0,222,255,53,224,3,20,170,193,0,0,176,33, - 144,23,145,65,7,0,148,225,67,1,145,224,3,20,170,62,7,0,148,123,7,0,113,65,254,255,84,251,15,64,185,187,220,7,54,173,255,255,23,251,0,0,208,123,227,46,145,224,3,27,170,148,8,0,148,104,3,64,185,31,5,0,49,33,228,255,84,200,0,0,208,192,0,0,176,0, - 32,24,145,8,201,69,249,0,1,63,214,200,0,0,208,193,0,0,176,33,160,23,145,8,209,69,249,0,1,63,214,232,0,0,208,0,217,5,249,224,0,0,208,0,224,46,145,182,8,0,148,17,255,255,23,251,0,0,208,123,35,47,145,224,3,27,170,125,8,0,148,104,3,64,185,31,5,0, - 49,193,226,255,84,200,0,0,208,192,0,0,176,0,32,24,145,8,201,69,249,0,1,63,214,200,0,0,208,193,0,0,176,33,160,24,145,8,209,69,249,0,1,63,214,232,0,0,208,0,225,5,249,224,0,0,176,0,32,47,145,159,8,0,148,6,255,255,23,251,0,0,176,123,99,47,145,224, - 3,27,170,102,8,0,148,104,3,64,185,31,5,0,49,65,230,255,84,200,0,0,176,192,0,0,144,0,32,24,145,8,201,69,249,0,1,63,214,200,0,0,176,193,0,0,144,33,0,25,145,8,209,69,249,0,1,63,214,232,0,0,176,0,233,5,249,224,0,0,176,0,96,47,145,136,8,0,148,34, - 255,255,23,243,83,190,169,253,123,1,169,253,67,0,145,255,131,0,209,232,0,0,144,8,9,64,249,232,15,0,249,224,7,0,180,40,120,64,57,243,3,1,170,104,0,0,52,104,118,64,57,72,7,0,53,8,0,64,249,255,11,0,249,212,0,0,176,137,82,66,249,8,1,64,249,239,3, - 8,170,32,1,63,214,193,0,0,144,33,32,12,145,226,67,0,145,0,1,63,214,232,3,0,42,224,11,64,249,136,4,248,55,96,5,0,180,104,122,64,57,232,1,0,53,8,0,64,249,137,82,66,249,255,15,0,185,8,21,64,249,239,3,8,170,32,1,63,214,225,51,0,145,0,1,63,214,160, - 0,248,55,232,15,64,185,31,5,0,113,65,0,0,84,104,26,0,185,224,11,64,249,104,118,64,57,40,2,0,53,8,0,64,249,138,82,66,249,233,243,1,50,233,15,0,185,8,13,64,249,239,3,8,170,64,1,63,214,225,51,0,145,0,1,63,214,192,0,248,55,232,15,64,185,136,0,0, - 52,41,0,128,82,104,34,0,185,105,118,0,57,224,11,64,249,0,1,0,180,255,11,0,249,137,82,66,249,8,0,64,249,8,9,64,249,239,3,8,170,32,1,63,214,0,1,63,214,224,15,64,249,233,249,255,151,255,131,0,145,253,123,65,169,243,83,194,168,192,3,95,214,243,83, - 187,169,245,91,1,169,247,99,2,169,252,27,0,249,253,251,3,169,253,227,0,145,255,67,3,209,232,0,0,144,8,9,64,249,168,3,28,248,99,13,0,180,245,243,1,178,246,227,1,145,224,135,7,169,224,3,2,170,243,3,3,170,244,3,2,170,245,87,9,169,255,155,0,185, - 255,147,0,185,223,178,1,184,226,71,0,249,158,253,255,151,64,229,5,79,8,0,0,18,224,195,0,145,245,59,0,249,245,195,0,145,232,83,2,57,224,131,1,173,224,131,2,173,255,5,0,148,160,98,0,145,253,5,0,148,160,194,0,145,251,5,0,148,224,227,1,145,225,195, - 0,145,173,3,0,148,225,227,1,145,224,3,20,170,139,255,255,151,129,0,0,208,33,160,0,145,0,9,128,82,199,7,0,148,244,3,0,170,32,9,0,180,224,131,199,60,193,6,192,61,56,0,128,82,232,79,64,249,215,0,0,176,160,131,153,60,161,131,154,60,168,131,27,248, - 232,0,0,176,152,14,0,185,0,205,69,249,168,0,0,240,8,65,56,145,136,2,0,249,224,0,0,180,8,0,64,249,233,82,66,249,8,5,64,249,239,3,8,170,32,1,63,214,0,1,63,214,168,0,0,240,8,129,55,145,160,131,217,60,136,2,0,249,161,131,218,60,168,131,91,248,105, - 2,64,249,128,134,0,173,136,78,3,169,40,5,64,249,233,82,66,249,239,3,8,170,32,1,63,214,224,3,19,170,0,1,63,214,224,131,199,60,193,6,192,61,224,3,0,145,232,79,64,249,225,3,20,170,152,66,0,185,224,7,0,173,232,19,0,249,38,0,0,148,136,2,64,249,233, - 82,66,249,243,3,0,42,8,9,64,249,239,3,8,170,32,1,63,214,224,3,20,170,0,1,63,214,160,194,0,145,187,5,0,148,160,98,0,145,185,5,0,148,224,195,0,145,183,5,0,148,160,3,92,248,120,249,255,151,224,3,19,42,255,67,3,145,253,251,67,169,252,27,64,249,247, - 99,66,169,245,91,65,169,243,83,197,168,192,3,95,214,115,0,136,82,19,0,176,114,244,255,255,23,224,131,199,60,193,6,192,61,224,3,0,145,232,79,64,249,225,3,20,170,224,7,0,173,232,19,0,249,3,0,0,148,243,3,0,42,228,255,255,23,243,83,188,169,245,91, - 1,169,247,99,2,169,253,123,3,169,253,195,0,145,255,131,2,209,232,0,0,144,244,3,0,170,233,243,1,178,8,9,64,249,224,35,0,145,246,3,1,170,168,131,28,248,233,39,1,169,233,7,0,249,141,5,0,148,128,2,64,249,136,114,64,57,32,1,0,180,9,0,64,121,233,0, - 0,52,31,1,0,113,40,0,128,82,225,35,0,145,21,5,136,26,0,252,255,151,7,0,0,20,225,35,0,145,224,3,20,170,226,3,31,170,227,3,31,170,21,121,31,83,155,253,255,151,247,3,0,42,243,3,0,42,160,1,0,52,243,2,248,55,224,35,0,145,121,5,0,148,160,131,92,248, - 58,249,255,151,224,3,19,42,255,131,2,145,253,123,67,169,247,99,66,169,245,91,65,169,243,83,196,168,192,3,95,214,152,206,64,169,224,35,0,145,76,6,0,148,33,0,128,82,226,3,21,42,227,3,24,170,228,3,19,170,229,3,22,170,186,6,0,148,243,3,0,42,115, - 253,255,54,136,114,64,57,40,253,255,53,232,0,0,144,73,46,64,249,255,2,0,113,8,65,75,185,246,23,159,26,191,2,0,113,245,23,159,26,247,0,0,176,40,121,104,248,233,0,0,176,41,233,75,185,8,1,64,145,8,5,64,185,63,1,8,107,204,7,0,84,224,242,69,249,0, - 251,255,180,200,0,0,176,193,0,0,144,33,224,25,145,8,209,69,249,0,1,63,214,64,250,255,180,244,0,0,144,148,226,38,145,225,3,31,170,224,3,20,170,226,3,31,170,157,250,255,151,96,249,255,55,232,0,0,144,8,185,73,185,31,13,0,113,3,1,0,84,232,0,0,144, - 8,53,39,145,9,1,64,57,137,0,48,54,8,49,64,248,8,249,81,146,8,1,0,180,128,18,64,249,159,2,0,185,232,0,0,144,159,18,0,249,8,113,69,249,0,1,63,214,185,255,255,23,8,32,160,82,64,229,5,79,9,1,128,82,232,23,0,249,232,163,0,145,224,0,0,144,0,224,38, - 145,232,39,8,169,232,159,0,145,41,0,128,82,193,0,0,144,33,100,57,145,232,39,7,169,232,155,0,145,229,195,0,145,232,39,6,169,232,131,0,145,137,0,128,82,226,3,31,170,227,3,31,170,196,0,128,82,245,159,0,57,246,155,0,57,243,35,0,185,224,131,1,173, - 232,39,5,169,181,250,255,151,222,255,255,23,244,0,0,176,148,162,47,145,224,3,20,170,248,6,0,148,136,2,64,185,31,5,0,49,161,247,255,84,200,0,0,176,192,0,0,144,0,96,25,145,8,29,70,249,225,3,31,170,2,0,129,82,0,1,63,214,224,242,5,249,224,0,0,176, - 0,160,47,145,30,7,0,148,177,255,255,23,0,0,0,0,0,0,0,0,226,3,1,170,225,3,31,170,2,0,0,20,0,0,0,0,243,83,189,169,245,11,0,249,253,251,1,169,253,99,0,145,255,3,2,209,232,0,0,144,8,9,64,249,168,3,30,248,34,6,0,180,245,243,1,178,160,255,59,169,224, - 3,1,170,243,3,2,170,244,3,1,170,191,215,60,169,191,243,28,248,181,131,29,248,191,131,29,184,161,131,28,248,125,252,255,151,64,229,5,79,8,0,0,18,224,3,0,145,245,35,0,249,245,3,0,145,168,67,29,56,224,3,0,173,224,3,1,173,222,4,0,148,160,98,0,145, - 220,4,0,148,160,194,0,145,218,4,0,148,160,35,1,209,225,3,0,145,140,2,0,148,161,35,1,209,224,3,20,170,106,254,255,151,160,35,1,209,225,3,19,170,155,252,255,151,243,3,0,42,160,194,0,145,209,4,0,148,160,98,0,145,207,4,0,148,224,3,0,145,205,4,0, - 148,160,3,94,248,142,248,255,151,224,3,19,42,255,3,2,145,253,251,65,169,245,11,64,249,243,83,195,168,192,3,95,214,115,0,136,82,19,0,176,114,246,255,255,23,243,83,189,169,245,11,0,249,253,251,1,169,253,99,0,145,255,195,0,209,232,0,0,144,8,9,64, - 249,168,3,30,248,194,3,0,180,244,10,128,82,244,0,176,114,160,3,0,180,245,3,1,170,97,3,0,180,232,243,1,178,225,99,0,145,243,3,2,170,232,163,1,169,232,163,0,169,35,0,0,148,128,2,0,54,225,35,0,145,224,3,21,170,245,35,0,145,30,0,0,148,224,1,0,54, - 232,3,31,170,233,99,0,145,42,105,104,184,171,106,104,184,95,1,11,107,104,2,0,84,3,2,0,84,8,17,0,145,31,65,0,241,33,255,255,84,232,3,31,42,14,0,0,20,116,0,136,82,20,0,176,114,160,3,94,248,91,248,255,151,224,3,20,42,255,195,0,145,253,251,65,169, - 245,11,64,249,243,83,195,168,192,3,95,214,8,0,128,18,2,0,0,20,40,0,128,82,244,3,31,42,104,2,0,185,243,255,255,23,243,83,189,169,245,91,1,169,253,123,2,169,253,131,0,145,255,67,0,209,232,0,0,144,243,3,1,170,244,3,0,170,8,9,64,249,245,3,31,170, - 246,3,31,42,232,7,0,249,40,0,128,82,255,3,0,249,11,0,0,20,52,9,0,145,40,0,128,82,3,0,0,20,232,3,31,42,127,122,53,184,191,10,0,241,181,6,0,145,246,151,159,26,191,18,0,241,64,2,0,84,40,255,7,54,225,3,0,145,224,3,20,170,66,1,128,82,63,25,0,148, - 233,3,64,249,96,122,53,184,63,1,20,235,160,0,0,84,137,0,0,180,40,1,64,121,31,185,0,113,64,253,255,84,232,3,31,42,181,253,255,181,63,1,20,235,97,253,255,84,224,7,64,249,35,248,255,151,192,2,0,18,255,67,0,145,253,123,66,169,245,91,65,169,243,83, - 195,168,192,3,95,214,227,3,0,170,224,3,31,170,225,3,31,170,226,3,31,170,52,254,255,23,243,83,187,169,245,91,1,169,247,99,2,169,252,27,0,249,253,251,3,169,253,227,0,145,255,195,8,209,232,0,0,144,246,3,2,42,245,3,1,42,8,9,64,249,247,3,0,170,224, - 131,0,145,65,21,128,82,2,65,128,82,243,3,4,170,244,3,3,170,168,3,28,248,24,65,128,82,24,248,255,151,232,243,1,178,248,15,0,185,223,2,0,114,232,3,0,249,232,0,0,144,233,135,97,178,8,129,69,249,35,67,128,82,32,21,137,154,228,3,0,145,225,3,23,170, - 226,3,31,42,67,0,160,114,0,1,63,214,247,3,31,42,96,1,0,52,160,3,92,248,242,247,255,151,224,2,0,18,255,195,8,145,253,251,67,169,252,27,64,249,247,99,66,169,245,91,65,169,243,83,197,168,192,3,95,214,247,0,0,144,168,0,0,240,8,225,56,145,191,2,0, - 114,224,3,64,249,201,0,0,144,41,33,22,145,247,134,69,249,228,131,0,145,33,17,136,154,229,51,0,145,226,3,31,170,227,3,31,170,224,2,63,214,246,3,0,42,224,3,0,53,232,15,64,185,31,13,0,113,131,3,0,84,225,131,0,145,224,3,19,170,86,4,0,148,245,2,0, - 54,224,3,64,249,8,65,128,82,193,0,0,144,33,112,22,145,228,131,0,145,229,51,0,145,226,3,31,170,227,3,31,170,232,15,0,185,224,2,63,214,246,3,0,42,128,1,0,53,232,15,64,185,31,13,0,113,35,1,0,84,193,0,0,144,33,240,5,145,224,3,19,170,131,4,0,148, - 225,131,0,145,224,3,19,170,128,4,0,148,246,3,31,42,232,0,0,144,224,3,64,249,8,121,69,249,0,1,63,214,247,3,31,42,118,248,255,53,232,15,64,185,31,13,0,113,3,248,255,84,224,3,19,170,205,4,0,148,129,11,128,82,87,15,0,148,0,1,0,180,245,3,0,170,232, - 243,1,178,0,8,0,145,225,67,0,145,232,35,1,169,90,255,255,151,96,0,0,55,247,3,31,42,178,255,255,23,148,0,0,180,161,10,0,145,224,3,20,170,35,4,0,148,224,67,0,145,225,3,19,170,3,0,0,148,247,3,0,42,169,255,255,23,243,83,190,169,253,123,1,169,253, - 67,0,145,243,3,1,170,232,3,31,170,201,0,0,144,41,161,22,145,10,104,104,184,43,105,104,184,95,1,11,107,168,0,0,84,3,1,0,84,8,17,0,145,31,65,0,241,33,255,255,84,224,3,19,170,253,123,65,169,243,83,194,168,202,249,255,23,212,0,0,176,192,0,0,144, - 0,224,22,145,148,42,70,249,128,2,63,214,224,3,19,170,158,4,0,148,200,0,0,176,8,45,70,249,0,1,63,214,192,0,0,144,0,160,7,145,128,2,63,214,224,3,31,42,253,123,65,169,243,83,194,168,192,3,95,214,0,0,0,0,0,0,0,0,0,0,0,0,170,0,0,20,0,0,0,0,0,0,0, - 0,0,0,0,0,8,48,0,145,9,1,64,185,0,0,176,18,63,1,0,107,224,0,0,84,32,5,0,17,10,125,95,136,95,1,9,107,129,0,0,84,0,125,10,136,138,255,255,53,192,3,95,214,95,63,3,213,244,255,255,23,0,0,0,0,0,0,0,0,243,15,30,248,253,251,0,169,253,35,0,145,9,0,176, - 18,10,48,0,145,2,0,0,20,95,63,3,213,75,1,64,185,127,1,9,107,0,4,0,84,104,5,0,81,76,125,95,136,159,1,11,107,33,255,255,84,72,253,12,136,140,255,255,53,168,2,0,53,211,0,0,176,191,59,3,213,0,1,0,180,8,0,64,249,105,82,66,249,8,17,64,249,239,3,8, - 170,32,1,63,214,33,0,128,82,0,1,63,214,232,0,0,176,0,205,69,249,224,0,0,180,8,0,64,249,105,82,66,249,8,9,64,249,239,3,8,170,32,1,63,214,0,1,63,214,232,3,31,42,224,3,8,42,253,251,64,169,243,7,66,248,192,3,95,214,232,119,31,50,251,255,255,23,0, - 0,0,0,243,83,190,169,253,123,1,169,253,67,0,145,255,3,1,209,233,0,0,144,232,3,2,170,243,3,0,170,41,9,64,249,169,131,30,248,33,5,248,55,212,0,0,176,255,7,0,249,136,4,0,180,9,1,64,249,35,1,64,249,137,82,66,249,239,3,3,170,32,1,63,214,193,0,0,144, - 33,32,26,145,226,35,0,145,224,3,8,170,96,0,63,214,226,7,64,249,225,3,0,42,96,30,64,249,137,82,66,249,8,0,64,249,8,13,64,249,239,3,8,170,32,1,63,214,0,1,63,214,224,7,64,249,0,1,0,180,255,7,0,249,137,82,66,249,8,0,64,249,8,9,64,249,239,3,8,170, - 32,1,63,214,0,1,63,214,160,131,94,248,10,247,255,151,224,3,31,42,255,3,1,145,253,123,65,169,243,83,194,168,192,3,95,214,226,3,31,170,232,255,255,23,105,66,64,185,41,5,0,113,203,250,255,84,96,134,64,173,224,67,0,145,104,26,64,249,225,3,19,170, - 105,66,0,185,224,135,0,173,232,27,0,249,150,253,255,151,128,253,255,54,225,3,0,42,96,30,64,249,201,0,0,176,41,81,66,249,8,0,64,249,8,13,64,249,239,3,8,170,32,1,63,214,226,3,31,170,0,1,63,214,225,255,255,23,0,0,0,0,0,0,0,0,0,0,0,0,243,83,190, - 169,253,123,1,169,253,67,0,145,243,3,0,170,0,28,64,249,244,3,1,42,168,0,0,240,8,129,55,145,104,2,0,249,32,1,0,180,127,30,0,249,201,0,0,176,8,0,64,249,41,81,66,249,8,9,64,249,239,3,8,170,32,1,63,214,0,1,63,214,232,11,2,50,104,14,0,185,116,0,0, - 52,224,3,19,170,238,4,0,148,224,3,19,170,253,123,65,169,243,83,194,168,192,3,95,214,0,0,0,0,32,0,32,212,32,0,32,212,253,123,191,169,253,3,0,145,95,0,0,249,40,44,64,41,42,36,65,41,232,0,0,53,203,0,0,53,95,1,3,113,129,0,0,84,12,192,168,82,63,1, - 12,107,96,2,0,84,44,113,134,82,76,209,169,114,31,1,12,107,72,0,136,82,8,0,176,114,193,2,0,84,12,59,153,82,76,122,169,114,127,1,12,107,65,2,0,84,203,182,150,82,75,226,169,114,95,1,11,107,193,1,0,84,202,157,141,82,42,184,169,114,63,1,10,107,65, - 1,0,84,64,0,0,249,201,0,0,176,8,0,64,249,41,81,66,249,8,5,64,249,239,3,8,170,32,1,63,214,0,1,63,214,232,3,31,42,224,3,8,42,253,123,193,168,192,3,95,214,243,83,189,169,245,91,1,169,253,123,2,169,253,131,0,145,255,67,0,209,232,0,0,144,246,0,0, - 144,243,3,0,170,8,9,64,249,244,0,0,176,232,7,0,249,200,66,75,185,73,46,64,249,40,121,104,248,233,0,0,176,41,249,75,185,8,1,64,145,8,5,64,185,63,1,8,107,140,12,0,84,136,250,69,249,213,0,0,176,40,2,0,180,224,3,19,170,97,16,128,82,222,2,0,148,224, - 3,19,170,134,3,0,148,148,250,69,249,224,3,0,185,224,3,19,170,157,3,0,148,168,82,66,249,239,3,20,170,225,3,0,170,0,1,63,214,224,3,0,145,128,2,63,214,0,6,0,52,200,66,75,185,73,46,64,249,246,0,0,176,40,121,104,248,233,0,0,176,41,9,76,185,8,1,64, - 145,8,5,64,185,63,1,8,107,204,5,0,84,200,2,70,249,246,0,176,82,8,4,0,180,169,82,66,249,239,3,8,170,255,3,0,249,32,1,63,214,224,3,0,145,0,1,63,214,244,3,0,42,0,2,248,55,225,3,64,249,224,3,19,170,228,2,0,148,0,1,0,55,200,0,0,176,8,189,69,249,0, - 1,63,214,8,60,0,18,31,4,0,113,8,1,22,42,20,176,136,26,232,0,0,144,224,3,64,249,8,145,69,249,0,1,63,214,224,7,64,249,84,246,255,151,224,3,20,42,255,67,0,145,253,123,66,169,245,91,65,169,243,83,195,168,192,3,95,214,8,146,128,82,212,2,8,42,246, - 255,255,23,232,3,64,185,224,3,19,170,1,5,0,81,0,3,0,148,232,255,175,18,31,0,0,114,244,19,136,26,238,255,255,23,244,0,0,144,148,34,48,145,224,3,20,170,97,4,0,148,136,2,64,185,31,5,0,49,161,249,255,84,200,0,0,144,160,0,0,240,0,224,35,145,8,29, - 70,249,225,3,31,170,2,0,129,82,0,1,63,214,192,0,0,180,200,0,0,144,161,0,0,240,33,64,36,145,8,209,69,249,0,1,63,214,192,2,6,249,224,0,0,144,0,32,48,145,129,4,0,148,187,255,255,23,245,3,20,170,244,0,0,144,148,226,47,145,224,3,20,170,71,4,0,148, - 136,2,64,185,244,3,21,170,31,5,0,49,161,242,255,84,200,0,0,144,160,0,0,240,0,0,27,145,8,201,69,249,0,1,63,214,200,0,0,144,161,0,0,240,33,96,26,145,8,209,69,249,0,1,63,214,128,250,5,249,224,0,0,144,0,224,47,145,105,4,0,148,134,255,255,23,243, - 83,190,169,253,123,1,169,253,67,0,145,255,67,1,209,200,0,0,240,244,3,1,170,243,3,0,170,8,9,64,249,160,0,0,240,0,64,28,145,161,0,0,240,33,128,27,145,226,3,19,170,227,3,20,170,228,3,31,170,37,0,128,82,230,3,31,170,231,3,31,170,168,131,30,248,255, - 3,0,249,88,0,0,148,160,0,0,240,0,224,29,145,161,0,0,240,33,96,29,145,98,34,0,145,131,98,0,145,228,3,31,170,229,3,31,42,230,3,31,170,231,3,31,170,255,3,0,249,76,0,0,148,244,243,1,178,224,195,0,145,244,211,3,169,244,27,0,249,38,2,0,148,160,0,0, - 240,0,128,38,145,225,195,0,145,35,3,0,148,224,0,0,54,161,0,0,240,33,64,39,145,224,195,0,145,236,2,0,148,8,0,0,18,104,114,0,57,224,195,0,145,28,2,0,148,224,195,0,145,255,211,2,169,244,211,3,169,21,2,0,148,160,0,0,240,0,64,31,145,161,0,0,240,33, - 192,30,145,226,163,0,145,227,195,0,145,100,98,0,145,102,130,0,145,103,118,0,145,229,3,31,42,255,3,0,249,42,0,0,148,224,35,0,145,244,255,1,169,244,211,0,169,5,2,0,148,116,122,0,145,160,0,0,240,0,192,32,145,161,0,0,240,33,32,32,145,226,131,0,145, - 227,35,0,145,100,98,0,145,229,3,31,42,230,3,31,170,231,3,31,170,244,3,0,249,25,0,0,148,104,122,64,57,168,1,0,53,160,0,0,240,0,192,34,145,161,0,0,240,33,192,33,145,226,131,0,145,227,35,0,145,100,98,0,145,229,3,31,42,230,3,31,170,231,3,31,170, - 244,3,0,249,11,0,0,148,224,35,0,145,235,1,0,148,224,195,0,145,233,1,0,148,160,131,94,248,170,245,255,151,255,67,1,145,253,123,65,169,243,83,194,168,192,3,95,214,243,83,186,169,245,91,1,169,247,99,2,169,249,107,3,169,251,115,4,169,253,123,5,169, - 253,67,1,145,255,67,0,209,200,0,0,240,179,11,64,249,245,3,7,170,8,9,64,249,246,3,6,170,250,3,5,42,244,3,4,170,248,3,3,170,247,3,2,170,249,3,1,170,219,0,0,240,232,7,0,249,101,0,0,54,40,0,128,82,104,195,39,57,225,3,24,170,200,2,0,148,160,2,0,54, - 224,3,24,170,166,2,0,148,224,2,0,249,150,0,0,180,224,3,24,170,139,2,0,148,32,11,0,54,20,2,0,180,224,2,64,249,32,1,0,180,211,19,0,148,31,4,0,113,232,23,159,26,136,2,0,185,51,1,0,180,40,0,128,82,104,2,0,57,6,0,0,20,232,3,31,42,250,255,255,23,186, - 1,0,55,104,195,103,57,104,1,0,53,224,7,64,249,115,245,255,151,255,67,0,145,253,123,69,169,251,115,68,169,249,107,67,169,247,99,66,169,245,91,65,169,243,83,198,168,192,3,95,214,255,3,0,249,200,0,0,240,35,3,128,82,8,129,69,249,161,0,0,240,33,0, - 37,145,228,3,0,145,224,135,97,178,226,3,31,42,67,0,160,114,0,1,63,214,232,3,64,249,220,0,0,240,250,3,0,42,156,123,69,249,224,3,8,170,128,3,63,214,218,2,0,52,255,3,0,249,200,0,0,240,160,255,159,146,35,3,128,82,8,129,69,249,161,0,0,240,33,0,37, - 145,228,3,0,145,0,0,176,242,226,3,31,42,67,0,160,114,0,1,63,214,232,3,64,249,250,3,0,42,224,3,8,170,128,3,63,214,95,3,0,113,232,23,159,26,104,195,39,57,58,250,255,53,3,0,0,20,40,0,128,82,104,195,39,57,160,255,159,146,225,3,25,170,226,3,23,170, - 0,0,176,242,227,3,24,170,228,3,20,170,229,3,22,170,230,3,21,170,231,3,19,170,77,0,0,148,96,248,7,55,224,135,97,178,225,3,25,170,226,3,23,170,227,3,24,170,228,3,20,170,229,3,22,170,230,3,21,170,231,3,19,170,67,0,0,148,185,255,255,23,243,2,64, - 249,224,7,64,249,42,245,255,151,224,3,22,170,225,3,19,170,226,3,21,170,255,67,0,145,253,123,69,169,251,115,68,169,249,107,67,169,247,99,66,169,245,91,65,169,243,83,198,168,1,0,0,20,243,83,188,169,245,91,1,169,247,99,2,169,253,123,3,169,253,195, - 0,145,243,3,2,170,193,4,0,180,245,3,1,170,244,3,0,170,55,0,128,82,10,0,0,20,192,10,0,145,100,19,0,148,233,34,192,26,136,2,64,185,31,20,0,113,41,53,159,26,8,1,9,42,136,2,0,185,223,2,0,121,224,3,21,170,129,5,128,82,176,12,0,148,64,1,0,180,8,0, - 21,203,246,3,0,170,224,3,21,170,8,253,65,147,24,5,0,145,197,242,255,151,31,3,0,235,130,254,255,84,235,255,255,23,168,2,64,121,72,1,0,52,224,3,21,170,76,19,0,148,40,0,128,82,31,20,0,113,137,2,64,185,8,33,192,26,8,53,159,26,40,1,8,42,136,2,0,185, - 40,0,128,82,104,2,0,57,253,123,67,169,247,99,66,169,245,91,65,169,243,83,196,168,192,3,95,214,243,83,186,169,245,91,1,169,247,99,2,169,249,107,3,169,251,35,0,249,253,251,4,169,253,35,1,145,255,131,1,209,200,0,0,240,249,3,0,170,251,243,1,178, - 8,9,64,249,224,163,0,145,243,3,7,170,244,3,6,170,245,3,5,170,246,3,4,170,247,3,3,170,248,3,2,170,250,3,1,170,168,3,27,248,251,111,3,169,251,23,0,249,14,1,0,148,224,163,0,145,50,254,255,151,224,67,0,145,251,239,1,169,251,11,0,249,8,1,0,148,224, - 3,1,145,251,239,4,169,251,35,0,249,4,1,0,148,225,3,1,145,224,3,31,170,62,247,255,151,160,8,248,55,224,3,1,145,224,1,0,148,129,11,128,82,106,12,0,148,232,3,0,170,128,0,0,181,224,3,1,145,218,1,0,148,232,3,0,170,224,67,0,145,1,9,0,145,60,1,0,148, - 224,3,1,145,245,0,0,148,255,7,0,249,26,7,0,180,72,3,64,121,200,6,0,52,232,243,1,178,224,3,26,170,232,163,4,169,232,35,0,249,115,242,255,151,232,3,0,170,224,3,1,145,1,169,0,145,247,0,0,148,161,0,0,240,33,0,37,145,224,3,1,145,106,1,0,148,224,3, - 1,145,225,3,26,170,103,1,0,148,224,3,1,145,190,1,0,148,200,0,0,240,225,3,0,170,228,35,0,145,8,129,69,249,224,3,25,170,226,3,31,42,35,0,128,82,0,1,63,214,250,3,0,42,224,3,1,145,212,0,0,148,249,3,31,42,26,3,0,53,224,163,0,145,175,1,0,148,232,7, - 64,249,225,3,0,170,226,3,24,170,227,3,23,170,228,3,22,170,229,3,21,170,224,3,8,170,230,3,20,170,231,3,19,170,52,0,0,148,64,3,0,54,57,0,128,82,200,0,0,240,224,7,64,249,8,121,69,249,0,1,63,214,5,0,0,20,224,67,0,145,52,1,0,148,198,255,255,23,249, - 3,31,42,224,67,0,145,185,0,0,148,224,163,0,145,183,0,0,148,160,3,91,248,120,244,255,151,32,3,0,18,255,131,1,145,253,251,68,169,251,35,64,249,249,107,67,169,247,99,66,169,245,91,65,169,243,83,198,168,192,3,95,214,224,67,0,145,137,1,0,148,232, - 7,64,249,225,3,0,170,226,3,24,170,227,3,23,170,228,3,22,170,229,3,21,170,224,3,8,170,230,3,20,170,231,3,19,170,14,0,0,148,96,251,7,55,224,7,64,249,161,0,0,240,33,96,38,145,226,3,24,170,227,3,23,170,228,3,22,170,229,3,21,170,230,3,20,170,231, - 3,19,170,3,0,0,148,249,3,0,42,208,255,255,23,243,83,187,169,245,91,1,169,247,99,2,169,249,107,3,169,253,123,4,169,253,3,1,145,255,67,0,209,200,0,0,240,246,3,3,170,245,3,2,170,8,9,64,249,247,3,1,170,248,3,0,170,232,7,0,249,165,3,0,180,224,3,24, - 170,225,3,23,170,226,3,21,170,227,3,22,170,249,3,6,170,250,3,5,170,72,0,0,148,64,1,0,54,224,3,22,170,66,1,0,148,224,0,0,55,161,2,64,249,224,3,26,170,226,3,25,170,26,255,255,151,52,0,128,82,2,0,0,20,244,3,31,42,224,7,64,249,51,244,255,151,224, - 3,20,42,255,67,0,145,253,123,68,169,249,107,67,169,247,99,66,169,245,91,65,169,243,83,197,168,192,3,95,214,244,3,4,170,132,4,0,180,136,0,128,82,229,19,0,145,230,3,0,145,232,127,0,41,200,0,0,240,224,3,24,170,8,125,69,249,225,3,31,170,226,3,23, - 170,3,2,128,82,228,3,31,170,243,3,7,170,0,1,63,214,128,1,0,52,224,3,24,170,225,3,23,170,226,3,21,170,227,3,22,170,30,0,0,148,0,252,7,54,160,2,64,249,128,1,0,180,100,18,0,148,31,4,0,113,3,0,0,20,232,7,64,185,31,5,0,113,232,23,159,26,136,2,0,185, - 52,0,128,82,211,250,255,180,116,2,0,57,212,255,255,23,232,3,31,42,250,255,255,23,224,7,64,249,4,244,255,151,224,3,24,170,225,3,23,170,226,3,21,170,227,3,22,170,255,67,0,145,253,123,68,169,249,107,67,169,247,99,66,169,245,91,65,169,243,83,197, - 168,1,0,0,20,243,83,188,169,245,91,1,169,247,19,0,249,252,23,0,249,253,123,3,169,253,195,0,145,255,131,8,209,200,0,0,240,243,3,2,170,245,3,1,170,8,9,64,249,246,3,0,170,224,67,0,145,225,3,31,42,2,65,128,82,244,3,3,170,168,131,28,248,23,65,128, - 82,250,243,255,151,247,15,0,185,200,0,0,240,229,67,0,145,8,125,69,249,230,51,0,145,224,3,22,170,225,3,31,170,226,3,21,170,67,0,128,82,228,3,31,170,0,1,63,214,245,3,0,42,224,0,0,53,225,67,0,145,224,3,20,170,88,0,0,148,224,3,20,170,240,0,0,148, - 96,2,0,249,160,131,92,248,191,2,0,113,243,23,159,26,207,243,255,151,224,3,19,42,255,131,8,145,253,123,67,169,252,23,64,249,247,19,64,249,245,91,65,169,243,83,196,168,192,3,95,214,31,124,0,169,31,8,0,249,192,3,95,214,243,15,30,248,253,251,0,169, - 253,35,0,145,8,8,64,249,31,0,0,249,232,0,0,180,31,1,0,121,243,3,0,170,0,8,64,249,96,0,0,180,217,1,0,148,127,254,0,169,253,251,64,169,243,7,66,248,192,3,95,214,243,15,30,248,253,251,0,169,253,35,0,145,243,3,0,170,31,124,0,169,31,8,0,249,5,0,0, - 148,224,3,19,170,253,251,64,169,243,7,66,248,192,3,95,214,243,83,189,169,245,91,1,169,253,123,2,169,253,131,0,145,8,4,64,249,31,1,1,235,130,3,0,84,244,3,1,170,63,4,0,177,224,2,0,84,136,6,0,145,243,3,0,170,9,249,127,211,31,1,0,241,32,161,159, - 218,184,1,0,148,96,2,0,180,104,2,64,249,245,3,0,170,136,2,0,180,118,10,64,249,8,249,127,211,224,3,21,170,2,9,0,145,225,3,22,170,44,242,255,151,118,0,0,180,224,3,22,170,173,1,0,148,32,0,128,82,116,214,0,169,4,0,0,20,224,3,31,42,2,0,0,20,32,0, - 128,82,253,123,66,169,245,91,65,169,243,83,195,168,192,3,95,214,118,10,64,249,191,2,0,121,86,254,255,181,243,255,255,23,243,83,190,169,253,123,1,169,253,67,0,145,243,3,1,170,244,3,0,170,33,1,0,180,224,3,19,170,59,241,255,151,226,3,0,170,224, - 3,20,170,225,3,19,170,253,123,65,169,243,83,194,168,3,0,0,20,226,3,31,170,250,255,255,23,243,83,189,169,245,11,0,249,253,251,1,169,253,99,0,145,8,8,64,249,243,3,2,170,245,3,1,170,244,3,0,170,31,0,0,249,72,0,0,180,31,1,0,121,83,2,0,180,224,3, - 20,170,225,3,19,170,183,255,255,151,0,1,0,54,128,10,64,249,98,250,127,211,225,3,21,170,247,241,255,151,136,6,64,249,31,1,19,235,98,0,0,84,224,3,31,42,6,0,0,20,136,10,64,249,147,2,0,249,72,0,0,180,31,121,51,120,32,0,128,82,253,251,65,169,245, - 11,64,249,243,83,195,168,192,3,95,214,8,8,64,249,31,0,0,249,72,0,0,180,31,1,0,121,192,3,95,214,8,4,64,249,31,1,1,235,163,0,0,84,9,8,64,249,1,0,0,249,73,0,0,180,63,121,33,120,31,1,1,235,224,55,159,26,192,3,95,214,243,83,190,169,253,123,1,169, - 253,67,0,145,243,3,1,170,244,3,0,170,33,1,0,180,224,3,19,170,250,240,255,151,226,3,0,170,224,3,20,170,225,3,19,170,253,123,65,169,243,83,194,168,3,0,0,20,226,3,31,170,250,255,255,23,243,83,189,169,245,91,1,169,253,123,2,169,253,131,0,145,161, - 3,0,180,8,0,64,249,246,3,2,170,244,3,0,170,19,1,2,171,226,1,0,84,245,3,1,170,224,3,20,170,225,3,19,170,119,255,255,151,64,1,0,54,136,10,64,249,137,2,64,249,194,250,127,211,225,3,21,170,0,5,9,139,181,241,255,151,136,6,64,249,31,1,19,235,194,0, - 0,84,224,3,31,42,253,123,66,169,245,91,65,169,243,83,195,168,192,3,95,214,136,10,64,249,147,2,0,249,72,0,0,180,31,121,51,120,32,0,128,82,247,255,255,23,8,0,64,249,31,1,2,235,105,0,0,84,9,8,64,249,33,121,34,120,31,1,2,235,224,151,159,26,192,3, - 95,214,40,252,65,211,1,5,0,145,87,255,255,23,0,4,64,249,192,3,95,214,0,0,64,249,192,3,95,214,8,0,64,249,31,1,0,241,224,23,159,26,192,3,95,214,253,123,191,169,253,3,0,145,129,1,0,180,40,0,64,121,72,1,0,52,8,8,64,249,200,0,0,180,224,3,1,170,225, - 3,8,170,238,19,0,148,31,0,0,113,5,0,0,20,224,3,31,42,4,0,0,20,8,0,64,249,31,1,0,241,224,23,159,26,253,123,193,168,192,3,95,214,0,8,64,249,192,3,95,214,243,83,189,169,245,11,0,249,253,251,1,169,253,99,0,145,40,248,127,211,169,0,0,240,41,225,4, - 145,31,0,0,241,19,9,0,145,53,1,128,154,127,2,1,235,137,1,0,84,200,0,0,240,224,3,19,170,8,141,69,249,0,1,63,214,244,3,0,170,224,0,0,180,224,3,20,170,225,3,21,170,226,3,19,170,105,241,255,151,2,0,0,20,244,3,31,170,224,3,20,170,253,251,65,169,245, - 11,64,249,243,83,195,168,192,3,95,214,243,83,189,169,245,91,1,169,253,123,2,169,253,131,0,145,214,0,0,144,243,3,1,170,225,3,31,170,214,178,69,249,226,3,31,42,244,3,0,170,192,2,63,214,192,0,0,52,245,3,0,42,225,3,0,42,224,3,19,170,13,255,255,151, - 192,0,0,55,224,3,31,42,253,123,66,169,245,91,65,169,243,83,195,168,192,3,95,214,224,3,19,170,202,255,255,151,225,3,0,170,224,3,20,170,226,3,21,42,192,2,63,214,232,3,0,42,224,3,19,170,225,3,8,42,253,123,66,169,245,91,65,169,243,83,195,168,92, - 255,255,23,243,83,186,169,245,91,1,169,247,99,2,169,249,107,3,169,251,35,0,249,253,251,4,169,253,35,1,145,56,248,127,211,247,3,1,170,245,3,0,170,224,3,3,170,243,3,3,170,244,3,2,42,225,3,24,170,235,254,255,151,246,3,0,42,224,3,19,170,225,3,24, - 170,73,255,255,151,247,2,0,180,248,3,31,170,247,6,0,209,185,0,0,240,57,99,39,145,186,106,120,56,159,2,0,114,224,3,19,170,251,18,152,154,72,255,68,211,98,251,127,211,33,107,232,56,121,255,255,151,34,0,128,82,72,15,64,146,224,3,19,170,98,251,127, - 179,33,107,232,56,115,255,255,151,247,6,0,209,24,7,0,145,255,6,0,177,225,253,255,84,192,2,0,18,253,251,68,169,251,35,64,249,249,107,67,169,247,99,66,169,245,91,65,169,243,83,198,168,192,3,95,214,243,83,187,169,245,91,1,169,247,99,2,169,249,27, - 0,249,253,251,3,169,253,227,0,145,255,195,0,209,200,0,0,240,243,3,5,170,246,3,4,170,8,9,64,249,247,3,3,170,248,3,2,42,249,3,1,42,245,3,0,170,232,23,0,249,200,0,0,144,8,33,70,249,0,1,63,214,224,4,0,180,213,0,0,144,161,0,0,240,33,192,39,145,181, - 210,69,249,244,3,0,170,160,2,63,214,160,8,0,180,201,0,0,144,239,3,0,170,232,3,0,170,41,81,66,249,32,1,63,214,32,3,0,18,225,3,24,42,226,3,23,170,227,3,22,170,228,3,19,170,0,1,63,214,243,3,0,42,161,0,0,208,33,192,43,145,224,3,20,170,160,2,63,214, - 160,0,0,180,168,0,0,240,224,3,20,170,8,133,69,249,0,1,63,214,224,23,64,249,63,242,255,151,224,3,19,42,255,195,0,145,253,251,67,169,249,27,64,249,247,99,66,169,245,91,65,169,243,83,197,168,192,3,95,214,168,0,0,240,8,189,69,249,0,1,63,214,232, - 0,176,82,31,4,0,113,233,243,1,178,8,60,0,51,233,39,1,169,233,7,0,249,19,176,136,26,224,35,0,145,243,39,0,185,100,254,255,151,224,147,0,145,227,35,0,145,129,0,128,82,34,0,128,82,131,255,255,151,180,0,0,240,160,0,0,208,0,0,44,145,148,46,70,249, - 128,2,63,214,224,35,0,145,58,255,255,151,128,2,63,214,160,0,0,208,0,96,46,145,128,2,63,214,224,3,21,170,128,2,63,214,160,0,0,208,0,160,43,145,128,2,63,214,224,35,0,145,80,254,255,151,210,255,255,23,168,0,0,240,8,189,69,249,0,1,63,214,232,0,176, - 82,31,4,0,113,233,243,1,178,8,60,0,51,233,39,1,169,233,7,0,249,19,176,136,26,224,35,0,145,243,39,0,185,63,254,255,151,224,147,0,145,227,35,0,145,129,0,128,82,34,0,128,82,94,255,255,151,182,0,0,240,160,0,0,208,0,128,40,145,214,46,70,249,192,2, - 63,214,224,35,0,145,21,255,255,151,192,2,63,214,160,0,0,208,0,160,43,145,192,2,63,214,224,35,0,145,48,254,255,151,169,255,255,23,0,0,0,0,127,35,3,213,253,123,190,169,253,3,0,145,48,0,128,146,176,11,0,249,101,0,0,148,2,0,0,20,0,0,128,210,253, - 123,194,168,255,35,3,213,192,3,95,214,97,0,0,212,204,18,0,20,0,0,0,0,92,0,0,20,0,0,0,0,252,255,255,23,0,0,0,0,127,35,3,213,243,83,190,169,245,11,0,249,253,123,191,169,253,3,0,145,200,0,0,208,20,193,44,145,169,0,0,240,40,69,69,249,243,3,0,170, - 128,34,0,145,0,1,63,214,104,2,64,185,136,0,0,53,9,0,128,18,105,2,0,185,22,0,0,20,31,5,0,49,129,1,0,84,181,0,0,240,168,86,70,249,3,0,128,82,130,12,128,82,129,34,0,145,224,3,20,170,0,1,63,214,104,2,64,185,136,2,0,52,31,5,0,49,224,254,255,84,200, - 0,0,208,9,65,75,185,72,46,64,249,9,89,105,248,200,0,0,208,8,1,64,185,42,1,64,145,72,5,0,185,168,0,0,240,8,57,70,249,128,34,0,145,0,1,63,214,253,123,193,168,245,11,64,249,243,83,194,168,255,35,3,213,192,3,95,214,8,0,128,18,104,2,0,185,169,0,0, - 240,40,57,70,249,245,255,255,23,127,35,3,213,243,83,191,169,253,123,191,169,253,3,0,145,200,0,0,208,20,193,44,145,169,0,0,240,40,69,69,249,243,3,0,170,128,34,0,145,0,1,63,214,204,0,0,208,136,1,64,185,128,34,0,145,9,5,0,17,200,0,0,208,10,65,75, - 185,72,46,64,249,137,1,0,185,105,2,0,185,9,89,106,248,136,1,64,185,43,1,64,145,104,5,0,185,169,0,0,240,40,57,70,249,0,1,63,214,224,3,20,170,168,0,0,240,8,101,70,249,0,1,63,214,253,123,193,168,243,83,193,168,255,35,3,213,192,3,95,214,0,0,0,0, - 127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,243,3,0,170,4,0,0,20,224,3,19,170,133,10,0,148,0,1,0,52,224,3,19,170,106,18,0,148,96,255,255,180,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95,214,127,6,0,177,64,0,0,84,116,0,0,148, - 125,0,0,148,0,0,62,212,0,0,0,0,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,136,0,0,144,8,225,0,145,16,228,0,79,243,3,0,170,233,3,1,170,104,2,0,249,97,34,0,145,32,33,0,145,112,130,128,60,113,8,0,148,224,3,19,170,253,123,193,168,243, - 7,65,248,255,35,3,213,192,3,95,214,0,0,0,0,9,4,64,249,136,0,0,144,8,33,1,145,63,1,0,241,32,17,136,154,192,3,95,214,0,0,0,0,0,0,0,0,127,35,3,213,243,83,191,169,253,123,191,169,253,3,0,145,136,0,0,144,8,225,0,145,244,3,0,170,128,34,0,145,136,2, - 0,249,243,3,1,42,128,8,0,148,147,0,0,54,1,3,128,210,224,3,20,170,102,255,255,151,224,3,20,170,253,123,193,168,243,83,193,168,255,35,3,213,192,3,95,214,136,0,0,144,9,225,1,145,31,8,0,249,138,0,0,144,72,161,1,145,8,36,0,169,192,3,95,214,0,0,0, - 0,136,0,0,144,8,225,0,145,8,132,0,248,107,8,0,20,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,136,0,0,144,8,225,0,145,16,228,0,79,243,3,0,170,233,3,1,170,104,2,0,249,97,34,0,145,32,33,0,145,112,130,128,60,53,8,0,148,136,0,0,144,8,161, - 1,145,104,2,0,249,224,3,19,170,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95,214,136,0,0,144,9,129,2,145,31,8,0,249,138,0,0,144,72,65,2,145,8,36,0,169,192,3,95,214,0,0,0,0,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,136,0,0,144, - 8,225,0,145,16,228,0,79,243,3,0,170,233,3,1,170,104,2,0,249,97,34,0,145,32,33,0,145,112,130,128,60,23,8,0,148,136,0,0,144,8,65,2,145,104,2,0,249,224,3,19,170,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95,214,127,35,3,213,253,123,189,169, - 253,3,0,145,224,67,0,145,188,255,255,151,200,0,0,176,1,65,10,145,224,67,0,145,8,5,0,148,0,0,62,212,127,35,3,213,253,123,189,169,253,3,0,145,224,67,0,145,212,255,255,151,200,0,0,176,1,97,12,145,224,67,0,145,254,4,0,148,0,0,62,212,127,35,3,213, - 243,15,31,248,253,123,191,169,253,3,0,145,136,0,0,144,8,1,3,145,243,3,0,170,104,2,0,249,97,0,0,54,1,3,128,210,2,255,255,151,224,3,19,170,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95,214,127,35,3,213,243,83,189,169,245,91,1,169,247,19,0, - 249,253,123,190,169,253,3,0,145,245,3,0,170,246,3,1,170,0,0,128,82,205,3,0,148,8,28,0,83,72,7,0,52,162,3,0,148,19,28,0,83,179,67,0,57,52,0,128,82,215,0,0,208,232,162,75,185,72,7,0,53,40,0,128,82,232,162,11,185,59,4,0,148,8,28,0,83,168,2,0,52, - 146,4,0,148,61,3,0,148,70,3,0,148,168,0,0,240,1,161,19,145,169,0,0,240,32,65,19,145,111,13,0,148,128,1,0,53,59,4,0,148,8,28,0,83,40,1,0,52,168,0,0,240,1,33,19,145,169,0,0,240,32,1,19,145,82,13,0,148,72,0,128,82,232,162,11,185,20,0,128,82,224, - 3,19,42,153,3,0,148,244,2,0,53,117,4,0,148,243,3,0,170,104,2,64,249,168,1,0,180,69,3,0,148,8,28,0,83,72,1,0,52,104,2,64,249,226,3,22,170,65,0,128,82,224,3,21,170,239,3,8,170,177,0,0,240,49,82,66,249,32,2,63,214,224,1,63,214,202,0,0,208,72,69, - 75,185,9,5,0,17,73,69,11,185,32,0,128,82,2,0,0,20,0,0,128,82,253,123,194,168,247,19,64,249,245,91,65,169,243,83,195,168,255,35,3,213,192,3,95,214,224,0,128,82,91,4,0,148,0,0,62,212,0,0,0,0,127,35,3,213,243,83,190,169,245,11,0,249,253,123,190, - 169,253,3,0,145,20,28,0,83,201,0,0,208,40,69,75,185,31,1,0,113,236,0,0,84,0,0,128,82,253,123,194,168,245,11,64,249,243,83,194,168,255,35,3,213,192,3,95,214,8,5,0,81,40,69,11,185,76,3,0,148,19,28,0,83,179,67,0,57,213,0,0,208,168,162,75,185,31, - 9,0,113,1,2,0,84,5,4,0,148,242,2,0,148,89,4,0,148,191,162,11,185,224,3,19,42,88,3,0,148,1,0,128,82,224,3,20,42,127,3,0,148,8,28,0,83,31,1,0,113,243,7,159,26,9,4,0,148,224,3,19,42,228,255,255,23,224,0,128,82,47,4,0,148,0,0,62,212,0,0,0,0,127, - 35,3,213,253,123,191,169,253,3,0,145,33,2,0,52,63,4,0,113,128,1,0,84,63,8,0,113,224,0,0,84,63,12,0,113,96,0,0,84,32,0,128,82,12,0,0,20,18,4,0,148,2,0,0,20,254,3,0,148,0,28,0,83,7,0,0,20,225,3,2,170,114,255,255,151,4,0,0,20,95,0,0,241,224,7,159, - 26,190,255,255,151,253,123,193,168,255,35,3,213,192,3,95,214,127,35,3,213,243,83,189,169,245,91,1,169,247,19,0,249,253,123,189,169,253,3,0,145,246,3,0,170,244,3,1,42,180,23,0,185,245,3,2,170,181,219,1,169,244,0,0,53,200,0,0,208,8,69,75,185,31, - 1,0,113,108,0,0,84,0,0,128,82,83,0,0,20,136,6,0,81,31,5,0,113,136,0,0,144,23,33,3,145,8,3,0,84,232,2,64,249,136,0,0,181,41,0,128,82,169,19,0,185,12,0,0,20,226,3,21,170,225,3,20,42,224,3,22,170,239,3,8,170,177,0,0,240,49,82,66,249,32,2,63,214, - 224,1,63,214,243,3,0,42,179,19,0,185,83,7,0,52,226,3,21,170,225,3,20,42,224,3,22,170,188,255,255,151,243,3,0,42,179,19,0,185,115,6,0,52,226,3,21,170,225,3,20,42,224,3,22,170,76,56,0,148,243,3,0,42,179,19,0,185,159,6,0,113,96,10,64,122,65,2,0, - 84,226,3,21,170,1,0,128,82,224,3,22,170,67,56,0,148,191,2,0,241,224,7,159,26,125,255,255,151,232,2,64,249,40,1,0,180,226,3,21,170,1,0,128,82,224,3,22,170,239,3,8,170,177,0,0,240,49,82,66,249,32,2,63,214,224,1,63,214,159,2,0,113,132,26,67,122, - 193,2,0,84,226,3,21,170,225,3,20,42,224,3,22,170,152,255,255,151,243,3,0,42,179,19,0,185,243,1,0,52,232,2,64,249,104,0,0,181,51,0,128,82,10,0,0,20,226,3,21,170,225,3,20,42,224,3,22,170,239,3,8,170,177,0,0,240,49,82,66,249,32,2,63,214,224,1,63, - 214,243,3,0,42,179,19,0,185,3,0,0,20,19,0,128,82,191,19,0,185,224,3,19,42,253,123,195,168,247,19,64,249,245,91,65,169,243,83,195,168,255,35,3,213,192,3,95,214,127,35,3,213,243,83,190,169,245,11,0,249,253,123,191,169,253,3,0,145,243,3,1,42,127, - 6,0,113,244,3,0,170,245,3,2,170,65,0,0,84,18,2,0,148,226,3,21,170,225,3,19,42,224,3,20,170,136,255,255,151,253,123,193,168,245,11,64,249,243,83,194,168,255,35,3,213,192,3,95,214,127,35,3,213,243,83,191,169,253,123,191,169,253,3,0,145,200,0,0, - 208,20,33,45,145,136,2,64,249,191,59,3,213,31,5,0,241,0,5,0,84,168,4,0,181,136,0,0,144,0,65,3,145,169,0,0,240,40,201,69,249,0,1,63,214,243,3,0,170,115,0,0,181,51,0,128,210,17,0,0,20,136,0,0,144,1,193,3,145,169,0,0,240,40,209,69,249,224,3,19, - 170,0,1,63,214,0,255,255,180,136,0,0,144,1,33,4,145,128,6,0,249,169,0,0,240,40,209,69,249,224,3,19,170,0,1,63,214,0,254,255,180,128,10,0,249,136,254,95,200,104,0,0,181,147,254,17,200,177,255,255,53,191,59,3,213,31,1,0,241,96,10,65,250,192,0, - 0,84,31,5,0,241,224,7,159,26,4,0,0,20,32,0,128,82,2,0,0,20,0,0,128,82,253,123,193,168,243,83,193,168,255,35,3,213,192,3,95,214,127,35,3,213,253,123,191,169,253,3,0,145,199,255,255,151,8,28,0,83,104,1,0,52,200,0,0,208,8,65,45,145,9,1,64,249,0, - 65,0,145,239,3,9,170,177,0,0,240,49,82,66,249,32,2,63,214,224,1,63,214,17,0,0,20,200,0,0,208,10,65,45,145,3,0,0,20,191,58,3,213,63,32,3,213,72,9,64,249,191,59,3,213,136,255,255,181,43,0,128,210,72,65,0,145,9,253,95,200,105,0,0,181,11,253,17, - 200,177,255,255,53,191,59,3,213,201,254,255,181,253,123,193,168,255,35,3,213,192,3,95,214,0,0,0,0,200,255,255,240,14,1,0,145,200,61,64,185,203,193,40,139,104,133,64,185,31,53,0,113,9,3,0,84,108,241,64,185,204,2,0,52,104,41,64,121,201,49,0,145, - 47,73,108,184,13,0,128,82,108,13,64,121,8,1,11,139,10,97,0,145,204,1,0,52,73,33,0,145,40,5,64,185,255,1,8,107,163,0,0,84,43,1,64,185,104,1,8,11,255,1,8,107,3,1,0,84,173,5,0,17,191,1,12,107,74,161,0,145,41,161,0,145,163,254,255,84,0,0,128,210, - 192,3,95,214,11,0,0,185,72,37,64,185,40,0,0,185,73,13,64,185,192,65,41,139,250,255,255,23,127,35,3,213,243,83,191,169,253,123,185,169,253,3,0,145,168,0,0,240,8,97,70,249,244,3,1,170,2,6,128,210,225,67,0,145,243,3,0,170,0,1,63,214,96,0,0,181, - 32,3,128,82,96,0,62,212,232,55,64,185,137,8,128,82,31,1,9,106,192,3,0,84,168,0,0,240,8,229,69,249,224,3,1,145,0,1,63,214,237,71,64,185,170,5,0,81,107,2,10,10,138,2,10,10,104,1,10,11,233,3,13,203,171,65,40,139,44,1,19,138,105,5,0,209,77,0,0,181, - 128,0,62,212,42,9,205,154,136,10,205,154,74,1,8,139,73,125,64,242,64,1,0,84,10,0,128,82,136,253,95,136,8,1,10,42,136,253,17,136,177,255,255,53,191,59,3,213,140,1,13,139,41,5,0,209,41,255,255,181,253,123,199,168,243,83,193,168,255,35,3,213,192, - 3,95,214,0,0,0,0,127,35,3,213,243,83,190,169,245,91,1,169,253,123,190,169,253,3,0,145,246,3,0,42,244,3,1,170,225,83,0,145,224,67,0,145,157,255,255,151,243,3,0,170,147,0,0,181,136,0,128,82,136,2,0,185,24,0,0,20,201,0,0,208,40,113,75,185,245,19, - 64,185,72,1,0,53,40,0,128,82,40,113,11,185,232,23,64,185,104,0,248,55,32,3,128,82,96,0,62,212,225,3,21,170,224,3,19,170,177,255,255,151,168,0,0,240,8,93,70,249,227,3,20,170,226,3,22,42,225,3,21,170,224,3,19,170,0,1,63,214,96,0,0,53,32,3,128, - 82,96,0,62,212,253,123,194,168,245,91,65,169,243,83,194,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,136,0,0,144,8,177,65,185,136,3,96,54,80,255,255,151,200,0,0,208,10,161,45,145,72,1,64,185,9,5,0,17,73,1,0, - 185,63,5,0,113,129,0,0,84,65,17,0,145,128,0,128,82,196,255,255,151,15,255,255,151,8,28,0,83,104,1,0,52,200,0,0,208,8,97,45,145,9,1,64,249,0,33,0,145,239,3,9,170,177,0,0,240,49,82,66,249,32,2,63,214,224,1,63,214,4,0,0,20,191,59,3,213,200,0,0, - 208,31,177,5,249,253,123,193,168,255,35,3,213,192,3,95,214,127,35,3,213,253,123,190,169,253,3,0,145,136,0,0,144,8,177,65,185,104,3,96,54,44,255,255,151,200,0,0,208,10,161,45,145,72,1,64,185,9,5,0,81,73,1,0,185,137,0,0,53,64,5,64,185,225,67,0, - 145,161,255,255,151,236,254,255,151,8,28,0,83,104,1,0,52,200,0,0,208,8,97,45,145,9,1,64,249,0,33,0,145,239,3,9,170,177,0,0,240,49,82,66,249,32,2,63,214,224,1,63,214,4,0,0,20,191,59,3,213,200,0,0,208,31,177,5,249,253,123,194,168,255,35,3,213, - 192,3,95,214,0,0,0,0,127,35,3,213,243,83,187,169,245,91,1,169,247,99,2,169,249,107,3,169,251,35,0,249,253,123,184,169,253,3,0,145,245,3,0,170,248,3,1,170,174,255,255,151,16,228,0,79,200,255,255,240,13,1,0,145,170,34,64,41,185,30,64,185,245,227, - 3,169,240,23,128,61,255,127,6,169,160,65,40,139,168,38,65,41,255,115,0,185,224,39,0,249,182,65,40,139,171,65,41,139,168,38,66,41,172,65,40,139,8,9,128,82,232,51,0,185,186,65,41,139,170,1,0,55,232,195,0,145,232,11,0,249,187,255,255,151,168,0, - 0,240,8,53,70,249,227,67,0,145,34,0,128,82,1,0,128,82,160,22,0,24,0,1,63,214,0,0,128,210,169,0,0,20,8,3,11,203,212,2,64,249,23,253,67,147,139,89,119,248,104,253,127,211,10,1,0,82,234,83,0,185,170,0,0,52,168,9,0,145,1,65,43,139,225,47,0,249,4, - 0,0,20,104,61,0,18,232,91,0,185,225,47,64,249,155,0,0,144,104,51,65,249,19,0,128,210,168,1,0,180,225,195,0,145,0,0,128,82,239,3,8,170,177,0,0,240,49,82,66,249,32,2,63,214,224,1,63,214,243,3,0,170,19,16,0,181,225,47,64,249,224,39,64,249,104,51, - 65,249,116,7,0,181,104,1,0,180,225,195,0,145,32,0,128,82,239,3,8,170,177,0,0,240,49,82,66,249,32,2,63,214,224,1,63,214,244,3,0,170,180,4,0,181,224,39,64,249,168,0,0,208,8,25,70,249,2,0,128,82,1,0,128,210,0,1,63,214,244,3,0,170,180,3,0,181,168, - 0,0,208,8,189,69,249,0,1,63,214,104,0,0,240,8,53,65,249,224,115,0,185,72,1,0,180,225,195,0,145,96,0,128,82,239,3,8,170,177,0,0,208,49,82,66,249,32,2,63,214,224,1,63,214,244,3,0,170,180,1,0,181,232,195,0,145,232,15,0,249,109,255,255,151,168,0, - 0,208,8,53,70,249,227,99,0,145,34,0,128,82,1,0,128,82,0,13,0,24,0,1,63,214,224,55,64,249,91,0,0,20,200,254,95,200,212,254,17,200,209,255,255,53,191,59,3,213,31,1,20,235,161,0,0,84,168,0,0,208,8,133,69,249,224,3,20,170,0,1,63,214,104,51,65,249, - 225,47,64,249,244,51,0,249,72,1,0,180,225,195,0,145,64,0,128,82,239,3,8,170,177,0,0,208,49,82,66,249,32,2,63,214,224,1,63,214,225,47,64,249,243,3,0,170,179,6,0,181,168,22,64,185,40,2,0,52,168,30,64,185,232,1,0,52,136,62,64,185,10,170,136,82, - 137,194,40,139,40,1,64,185,31,1,10,107,33,1,0,84,40,9,64,185,31,1,25,107,193,0,0,84,40,25,64,249,159,2,8,235,97,0,0,84,83,91,119,248,115,4,0,181,168,0,0,208,8,209,69,249,224,3,20,170,0,1,63,214,243,3,0,170,179,3,0,181,168,0,0,208,8,189,69,249, - 0,1,63,214,104,0,0,240,8,53,65,249,224,115,0,185,72,1,0,180,225,195,0,145,128,0,128,82,239,3,8,170,177,0,0,208,49,82,66,249,32,2,63,214,224,1,63,214,243,3,0,170,179,1,0,181,232,195,0,145,232,19,0,249,33,255,255,151,168,0,0,208,8,53,70,249,227, - 131,0,145,34,0,128,82,1,0,128,82,160,3,0,24,0,1,63,214,245,254,255,151,243,55,64,249,19,3,0,249,104,51,65,249,72,1,0,180,225,195,0,145,255,115,0,185,160,0,128,82,244,79,6,169,239,3,8,170,177,0,0,208,49,82,66,249,32,2,63,214,224,1,63,214,11,255, - 255,151,224,3,19,170,253,123,200,168,251,35,64,249,249,107,67,169,247,99,66,169,245,91,65,169,243,83,197,168,255,35,3,213,192,3,95,214,31,32,3,213,87,0,109,192,126,0,109,192,127,0,109,192,0,0,0,0,127,35,3,213,243,83,191,169,253,123,189,169,253, - 3,0,145,212,0,0,176,136,10,64,249,19,6,0,88,31,1,19,235,193,4,0,84,255,15,0,249,168,0,0,208,8,233,69,249,224,99,0,145,0,1,63,214,232,15,64,249,232,11,0,249,169,0,0,208,41,169,69,249,32,1,63,214,232,11,64,249,9,124,64,211,41,1,8,202,233,11,0, - 249,168,0,0,208,8,165,69,249,0,1,63,214,232,11,64,249,9,124,64,211,224,131,0,145,41,1,8,202,233,11,0,249,168,0,0,208,8,49,70,249,0,1,63,214,233,35,64,185,235,67,0,145,232,19,64,249,10,129,9,202,233,11,64,249,72,1,9,202,8,1,11,202,9,189,64,146, - 63,1,19,235,168,1,0,88,8,1,137,154,136,10,0,249,233,3,40,170,200,0,0,176,9,5,0,249,253,123,195,168,243,83,193,168,255,35,3,213,192,3,95,214,31,32,3,213,50,162,223,45,153,43,0,0,51,162,223,45,153,43,0,0,200,0,0,176,0,1,46,145,169,0,0,208,40,5, - 70,249,0,1,31,214,0,0,0,0,200,0,0,176,0,1,46,145,196,4,0,20,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,13,0,0,148,137,4,128,210,8,0,64,249,8,1,9,170,8,0,0,249,12,0,0,148,8,0,64,249,9,1,127,178,9,0,0,249,253,123,193,168,255,35,3,213,192, - 3,95,214,0,0,0,0,200,0,0,176,0,65,46,145,192,3,95,214,0,0,0,0,200,0,0,176,0,97,46,145,192,3,95,214,0,0,0,0,127,35,3,213,253,123,190,169,253,3,0,145,170,73,139,82,200,255,255,208,9,1,0,145,40,1,64,121,31,1,10,107,225,4,0,84,40,61,64,185,43,193, - 40,139,10,170,136,82,104,1,64,185,31,1,10,107,33,4,0,84,104,49,64,121,31,45,8,113,193,3,0,84,12,0,9,203,104,41,64,121,8,1,11,139,10,97,0,145,105,13,64,121,8,5,128,210,43,41,8,155,170,11,0,249,95,1,11,235,64,1,0,84,73,13,64,185,159,65,41,235, - 163,0,0,84,72,9,64,185,9,1,9,11,159,65,41,235,131,0,0,84,74,161,0,145,245,255,255,23,10,0,128,210,106,0,0,181,0,0,128,82,10,0,0,20,72,37,64,185,104,0,248,54,0,0,128,82,6,0,0,20,32,0,128,82,4,0,0,20,0,0,128,82,2,0,0,20,0,0,128,82,253,123,194, - 168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,49,1,0,148,192,1,0,52,232,3,18,170,9,5,64,249,200,0,0,176,10,161,46,145,3,0,0,20,63,1,8,235,96,1,0,84,72,253,95,200,104,0,0,181,73,253,17,200,177,255,255,53,191,59, - 3,213,40,255,255,181,0,0,128,82,253,123,193,168,255,35,3,213,192,3,95,214,32,0,128,82,252,255,255,23,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,19,28,0,83,23,1,0,148,192,0,0,52,179,0,0,53,200,0,0,176,8,161,46,145,31,253,159,200,191, - 59,3,213,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95,214,127,35,3,213,253,123,191,169,253,3,0,145,202,0,0,176,72,145,110,57,31,0,0,113,41,0,128,82,41,1,136,26,73,145,46,57,255,0,0,148,90,4,0,148,8,28,0,83,104,0,0,53,0,0,128,82,8,0,0,20, - 193,5,0,148,8,28,0,83,136,0,0,53,0,0,128,82,99,4,0,148,249,255,255,23,32,0,128,82,253,123,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,200,0,0,176,8,145,110,57,19,28,0,83,41,28,0,83,72,0,0, - 52,169,0,0,53,224,3,19,42,183,5,0,148,224,3,19,42,79,4,0,148,32,0,128,82,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,191,169,253,123,191,169,253,3,0,145,212,0,0,176,136,130,111,57,243,3,0,42,104,3,0,53, - 127,6,0,113,200,3,0,84,212,0,0,148,128,1,0,52,115,1,0,53,200,0,0,176,0,193,46,145,13,8,0,148,160,0,0,53,200,0,0,176,0,33,47,145,9,8,0,148,128,1,0,52,0,0,128,82,13,0,0,20,200,0,0,176,8,193,46,145,201,0,0,176,41,33,47,145,10,0,128,146,10,41,0, - 169,42,41,0,169,10,9,0,249,42,9,0,249,40,0,128,82,136,130,47,57,32,0,128,82,253,123,193,168,243,83,193,168,255,35,3,213,192,3,95,214,160,0,128,82,124,0,0,148,0,0,62,212,127,35,3,213,243,83,189,169,245,91,1,169,247,99,2,169,253,123,191,169,253, - 3,0,145,246,3,0,170,243,3,1,42,247,3,2,170,248,3,3,170,244,3,4,42,245,3,5,170,168,0,0,148,31,0,0,113,96,10,65,122,33,1,0,84,226,3,23,170,1,0,128,82,224,3,22,170,239,3,24,170,177,0,0,208,49,82,66,249,32,2,63,214,224,1,63,214,225,3,21,170,224, - 3,20,42,92,9,0,148,253,123,193,168,247,99,66,169,245,91,65,169,243,83,195,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,0,0,128,82,176,255,255,151,8,28,0,83,31,1,0,113,224,7,159,26,253,123,193,168,255,35,3,213, - 192,3,95,214,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,131,0,0,148,96,0,0,52,125,0,0,148,7,0,0,20,125,0,0,148,160,6,0,148,96,0,0,52,0,0,128,82,3,0,0,20,62,8,0,148,32,0,128,82,253,123,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3, - 213,253,123,191,169,253,3,0,145,113,0,0,148,160,0,0,52,200,0,0,176,0,193,46,145,185,7,0,148,4,0,0,20,153,5,0,148,64,0,0,53,159,5,0,148,253,123,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,0,0,128,82,68,5, - 0,148,213,3,0,148,253,123,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,213,3,0,148,8,28,0,83,104,0,0,53,0,0,128,82,7,0,0,20,64,5,0,148,8,28,0,83,104,0,0,53,215,3,0,148,250,255,255,23,32,0,128,82,253,123, - 193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,61,5,0,148,204,3,0,148,32,0,128,82,253,123,193,168,255,35,3,213,192,3,95,214,0,0,0,0,200,0,0,176,0,161,47,145,192,3,95,214,0,0,0,0,96,0,62,212,192,3,95,214,127, - 35,3,213,243,83,191,169,253,123,191,169,253,3,0,145,168,0,0,240,8,161,10,145,169,0,0,240,52,193,10,145,19,33,0,145,8,33,0,145,31,1,20,235,66,1,0,84,104,134,64,248,200,0,0,180,239,3,8,170,177,0,0,208,49,82,66,249,32,2,63,214,224,1,63,214,127, - 2,20,235,3,255,255,84,253,123,193,168,243,83,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,191,169,253,123,191,169,253,3,0,145,168,0,0,240,8,225,10,145,169,0,0,240,52,1,11,145,19,33,0,145,8,33,0,145,31,1,20,235,66,1,0,84,104, - 134,64,248,200,0,0,180,239,3,8,170,177,0,0,208,49,82,66,249,32,2,63,214,224,1,63,214,127,2,20,235,3,255,255,84,253,123,193,168,243,83,193,168,255,35,3,213,192,3,95,214,0,0,0,0,0,0,128,82,192,3,95,214,32,0,128,82,192,3,95,214,200,0,0,176,8,241, - 75,185,31,1,0,113,224,7,159,26,192,3,95,214,0,0,0,0,192,3,95,214,31,32,3,213,31,32,3,213,0,0,0,0,127,35,3,213,243,83,190,169,245,11,0,249,253,123,188,169,253,3,0,145,245,3,0,170,243,3,1,170,244,4,0,88,179,1,0,180,104,2,64,185,104,1,32,54,169, - 2,64,249,42,129,95,248,32,33,0,209,72,33,64,249,83,25,64,249,239,3,8,170,177,0,0,208,49,82,66,249,32,2,63,214,224,1,63,214,168,0,0,208,8,65,70,249,225,67,0,145,224,3,19,170,0,1,63,214,224,11,0,249,179,0,0,180,104,2,64,185,72,0,24,55,64,0,0,181, - 52,2,0,88,227,99,0,145,243,131,2,169,130,0,128,82,244,215,1,169,33,0,128,82,160,1,0,24,168,0,0,208,8,53,70,249,0,1,63,214,253,123,196,168,245,11,64,249,243,83,194,168,255,35,3,213,192,3,95,214,32,5,147,25,0,0,0,0,0,64,153,1,0,0,0,0,99,115,109, - 224,0,0,0,0,127,35,3,213,243,83,187,169,245,91,1,169,247,99,2,169,249,107,3,169,251,35,0,249,253,123,190,169,253,3,0,145,246,3,3,170,200,98,64,169,247,3,0,170,212,30,64,249,250,3,1,170,10,1,24,203,136,2,64,185,104,0,248,54,8,121,64,146,20,1, - 24,139,201,50,65,57,72,17,0,209,211,74,64,185,63,1,0,113,89,1,136,154,232,6,64,185,201,12,128,82,31,1,9,106,65,8,0,84,247,11,1,169,136,2,64,185,127,2,8,107,162,14,0,84,123,0,0,240,149,82,51,139,168,6,64,185,63,67,40,235,67,6,0,84,168,10,64,185, - 63,67,40,235,226,5,0,84,168,18,64,185,168,5,0,52,168,14,64,185,31,5,0,113,32,1,0,84,195,42,64,249,2,67,40,139,225,3,26,170,224,67,0,145,224,233,255,151,32,5,248,55,31,0,0,113,77,4,0,84,232,2,64,185,233,12,0,24,31,1,9,107,193,1,0,84,104,135,65, - 249,136,1,0,180,96,35,12,145,235,12,0,148,32,1,0,52,104,135,65,249,33,0,128,82,224,3,23,170,239,3,8,170,177,0,0,208,49,82,66,249,32,2,63,214,224,1,63,214,168,18,64,185,34,0,128,82,225,3,26,170,0,67,40,139,191,233,255,151,168,18,64,185,226,3, - 23,170,227,2,64,185,224,3,26,170,197,34,64,249,196,22,64,249,1,67,40,139,168,0,0,208,8,69,70,249,0,1,63,214,187,233,255,151,136,2,64,185,115,6,0,17,127,2,8,107,98,7,0,84,199,255,255,23,0,0,128,82,57,0,0,20,200,18,64,249,21,1,24,203,50,0,0,20, - 140,82,51,139,136,5,64,185,63,67,40,235,163,5,0,84,136,9,64,185,63,67,40,235,66,5,0,84,232,6,64,185,7,1,27,114,32,3,0,84,11,0,128,82,170,2,0,52,142,82,51,139,143,82,51,139,141,82,43,139,168,5,64,185,191,66,40,235,131,1,0,84,168,9,64,185,191, - 66,40,235,34,1,0,84,201,17,64,185,168,17,64,185,31,1,9,107,161,0,0,84,233,13,64,185,168,13,64,185,31,1,9,107,128,0,0,84,107,5,0,17,127,1,10,107,227,253,255,84,127,1,10,107,97,2,0,84,136,17,64,185,168,0,0,52,191,66,40,235,97,1,0,84,199,1,0,53, - 9,0,0,20,104,6,0,17,195,42,64,249,200,74,0,185,137,13,64,185,225,3,26,170,32,0,128,82,2,67,41,139,151,233,255,151,115,6,0,17,138,2,64,185,127,2,10,107,163,249,255,84,32,0,128,82,253,123,194,168,251,35,64,249,249,107,67,169,247,99,66,169,245, - 91,65,169,243,83,197,168,255,35,3,213,192,3,95,214,99,115,109,224,0,0,0,0,127,35,3,213,243,83,189,169,245,91,1,169,247,19,0,249,253,123,191,169,253,3,0,145,246,3,0,170,212,14,64,185,245,3,1,42,20,2,0,52,151,2,128,210,147,6,0,81,244,3,19,42,215, - 12,0,148,201,18,64,185,8,48,64,249,106,34,23,155,64,193,41,139,8,4,64,185,191,2,8,107,141,0,0,84,8,8,64,185,191,2,8,107,109,0,0,84,116,254,255,53,0,0,128,210,253,123,193,168,247,19,64,249,245,91,65,169,243,83,195,168,255,35,3,213,192,3,95,214, - 127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,243,3,1,170,225,3,0,170,224,3,19,170,47,13,0,148,225,3,0,42,224,3,19,170,214,255,255,151,31,0,0,241,224,7,159,26,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213, - 243,83,190,169,245,11,0,249,253,123,190,169,253,3,0,145,227,67,0,145,244,3,1,170,243,3,2,170,22,0,0,148,245,3,0,170,224,3,19,170,225,3,20,170,24,13,0,148,225,3,0,42,224,3,19,170,191,255,255,151,96,0,0,181,3,0,128,18,2,0,0,20,3,4,64,185,226,3, - 19,170,225,3,20,170,224,3,21,170,95,13,0,148,253,123,194,168,245,11,64,249,243,83,194,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,188,169,245,91,1,169,247,99,2,169,249,107,3,169,253,123,190,169,253,3,0,145,247,3,2,170,243,3,0,170, - 245,14,64,185,224,3,23,170,248,3,1,170,244,3,3,170,249,12,0,148,104,2,64,249,246,3,0,42,136,2,0,249,85,5,0,52,153,2,128,210,186,0,0,208,168,6,0,81,233,18,64,185,10,125,25,155,245,3,8,42,8,7,64,249,75,193,41,139,115,1,8,139,105,6,64,185,223,2, - 9,107,45,3,0,84,104,10,64,185,223,2,8,107,204,2,0,84,0,3,64,249,2,0,128,210,72,63,70,249,225,67,0,145,0,1,63,214,233,11,64,249,11,0,128,82,108,162,65,41,13,0,64,185,46,193,40,139,44,1,0,52,104,125,64,211,9,57,25,155,42,13,128,185,95,65,45,235, - 128,0,0,84,107,5,0,17,127,1,12,107,35,255,255,84,127,1,12,107,99,0,0,84,181,0,0,52,221,255,255,23,136,2,64,249,9,1,64,249,137,2,0,249,224,3,20,170,253,123,194,168,249,107,67,169,247,99,66,169,245,91,65,169,243,83,196,168,255,35,3,213,192,3,95, - 214,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,7,233,255,151,255,67,2,209,104,0,0,240,8,193,9,145,235,95,64,249,10,1,2,145,233,3,0,145,16,69,193,172,48,69,129,172,31,1,10,235,161,255,255,84,0,0,64,249,18,1,192,61,8,9,64,249,50,1,128,61, - 40,9,0,249,42,0,0,144,73,129,23,145,233,15,2,169,3,0,128,210,233,3,67,57,200,124,64,147,226,23,4,169,101,33,64,249,226,3,0,145,228,35,3,169,100,21,64,249,200,1,0,88,225,39,5,169,97,1,64,249,9,0,128,146,232,51,0,249,233,59,0,249,168,0,0,208,8, - 69,70,249,0,1,63,214,255,67,2,145,234,232,255,151,253,123,193,168,255,35,3,213,192,3,95,214,32,5,147,25,0,0,0,0,127,35,3,213,243,83,189,169,245,91,1,169,247,99,2,169,253,123,189,169,253,3,0,145,243,3,4,170,244,3,3,170,117,14,64,185,246,3,0,170, - 248,3,1,170,225,3,20,170,224,3,19,170,247,3,2,42,134,12,0,148,213,8,0,52,143,6,64,249,12,0,128,18,103,18,64,185,6,0,128,18,235,3,21,42,133,2,128,210,109,5,0,81,169,125,5,155,42,193,39,139,78,1,15,139,200,5,64,185,31,0,8,107,141,0,0,84,200,9, - 64,185,31,0,8,107,109,0,0,84,235,3,13,42,171,254,255,53,171,0,0,52,104,5,0,81,10,61,5,155,77,193,39,139,2,0,0,20,13,0,128,210,11,0,128,82,104,125,64,211,9,61,5,155,42,193,39,139,109,1,0,180,169,5,64,185,72,1,64,185,31,1,9,107,45,2,0,84,169,9, - 64,185,78,17,0,145,72,5,64,185,31,1,9,107,109,0,0,84,11,0,0,20,78,17,0,145,72,1,64,185,255,2,8,107,235,0,0,84,200,1,64,185,255,2,8,107,140,0,0,84,159,5,0,49,140,17,139,26,230,3,11,42,107,5,0,17,127,1,21,107,195,252,255,84,159,5,0,49,248,11,0, - 249,136,17,159,26,248,19,0,249,159,5,0,49,232,27,0,185,232,7,134,26,232,43,0,185,240,199,64,173,224,3,22,170,208,70,0,173,253,123,195,168,247,99,66,169,245,91,65,169,243,83,195,168,255,35,3,213,192,3,95,214,141,11,0,148,0,0,62,212,0,0,0,0,127, - 35,3,213,253,123,191,169,253,3,0,145,199,11,0,148,0,48,64,249,253,123,193,168,255,35,3,213,192,3,95,214,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,243,3,0,170,189,11,0,148,19,48,0,249,253,123,193,168,243,7,65,248,255,35,3,213,192, - 3,95,214,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,179,11,0,148,0,52,64,249,253,123,193,168,255,35,3,213,192,3,95,214,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,243,3,0,170,169,11,0,148,19,52,0,249,253,123,193,168,243,7,65, - 248,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,243,3,0,170,97,2,0,249,156,11,0,148,8,44,64,249,127,2,8,235,130,0,0,84,152,11,0,148,8,44,64,249,2,0,0,20,8,0,128,210,104,6,0,249,147,11,0,148,19,44, - 0,249,224,3,19,170,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95,214,127,35,3,213,243,83,191,169,253,123,191,169,253,3,0,145,244,3,0,170,135,11,0,148,8,44,64,249,159,2,8,235,1,2,0,84,131,11,0,148,8,44,64,249,168,1,0,180,19,5,64,249,159, - 2,8,235,128,0,0,84,232,3,19,170,8,1,0,180,251,255,255,23,122,11,0,148,19,44,0,249,253,123,193,168,243,83,193,168,255,35,3,213,192,3,95,214,52,11,0,148,0,0,62,212,127,35,3,213,243,83,190,169,245,91,1,169,253,123,190,169,253,3,0,145,244,3,3,170, - 225,11,0,249,147,6,64,249,246,3,0,170,245,3,2,170,104,11,0,148,19,48,0,249,211,30,64,249,101,11,0,148,19,52,0,249,99,11,0,148,7,0,128,82,6,0,128,210,136,30,64,249,5,0,128,82,9,48,64,249,227,3,20,170,226,3,21,170,225,67,0,145,10,1,64,185,224, - 3,22,170,36,65,42,139,207,13,0,148,253,123,194,168,245,91,65,169,243,83,194,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,191,169,253,123,186,169,253,3,0,145,243,3,0,170,161,35,0,249,179,15,2,169,164,11,3,169,191,19,0,185,179,139, - 4,169,70,11,0,148,8,8,64,249,161,35,1,145,96,2,64,185,239,3,8,170,177,0,0,176,49,82,66,249,32,2,63,214,224,1,63,214,177,67,0,145,63,254,159,136,1,0,0,20,160,19,64,185,253,123,198,168,243,83,193,168,255,35,3,213,192,3,95,214,0,0,0,0,0,0,0,0,0, - 0,0,0,127,35,3,213,243,15,31,248,253,123,189,169,253,3,0,145,161,67,0,57,96,4,0,180,201,4,0,24,8,0,64,185,31,1,9,107,225,3,0,84,8,24,64,185,31,17,0,113,129,3,0,84,8,32,64,185,233,3,0,24,8,1,9,75,31,9,0,113,232,2,0,84,8,24,64,249,168,2,0,180, - 9,5,64,185,233,0,0,52,8,28,64,249,1,193,41,139,0,20,64,249,23,0,0,148,14,0,0,20,13,0,0,20,8,1,64,185,104,1,32,54,9,20,64,249,32,1,64,249,0,1,0,180,8,0,64,249,8,9,64,249,239,3,8,170,177,0,0,176,49,82,66,249,32,2,63,214,224,1,63,214,253,123,195, - 168,243,7,65,248,255,35,3,213,192,3,95,214,99,115,109,224,32,5,147,25,48,10,0,20,0,0,0,0,32,0,31,214,0,0,0,0,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,243,3,0,170,251,10,0,148,9,44,64,249,201,0,0,180,40,1,64,249,31,1,19,235,0,1, - 0,84,41,5,64,249,137,255,255,181,32,0,128,82,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95,214,0,0,128,82,251,255,255,23,40,44,64,41,234,3,0,170,64,193,40,139,203,0,248,55,41,8,64,185,72,201,107,248,10,201,169,184,73,193,43,139,32,1,0,139, - 192,3,95,214,127,35,3,213,243,83,191,169,253,123,191,169,253,3,0,145,243,3,0,170,116,2,64,249,9,4,0,24,136,2,64,185,31,1,9,107,0,1,0,84,169,3,0,24,31,1,9,107,160,0,0,84,105,3,0,24,31,1,9,107,224,1,0,84,9,0,0,20,209,10,0,148,8,48,64,185,31,1, - 0,113,173,0,0,84,205,10,0,148,8,48,64,185,9,5,0,81,9,48,0,185,0,0,128,82,253,123,193,168,243,83,193,168,255,35,3,213,192,3,95,214,196,10,0,148,20,16,0,249,115,6,64,249,193,10,0,148,19,20,0,249,235,9,0,148,0,0,62,212,31,32,3,213,82,67,67,224, - 77,79,67,224,99,115,109,224,0,0,0,0,127,35,3,213,243,83,190,169,245,91,1,169,253,123,191,169,253,3,0,145,244,3,0,170,136,34,64,57,245,3,1,170,8,3,0,52,137,2,64,249,201,2,0,180,40,1,192,57,234,3,9,170,104,0,0,52,72,29,192,56,232,255,255,53,86, - 1,9,203,192,6,0,145,206,9,0,148,243,3,0,170,51,1,0,180,130,2,64,249,193,6,0,145,7,17,0,148,232,3,19,170,41,0,128,82,168,2,0,249,169,34,0,57,19,0,128,210,224,3,19,170,188,9,0,148,4,0,0,20,136,2,64,249,191,34,0,57,168,2,0,249,253,123,193,168,245, - 91,65,169,243,83,194,168,255,35,3,213,192,3,95,214,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,243,3,0,170,104,34,64,57,104,0,0,52,96,2,64,249,170,9,0,148,127,34,0,57,127,2,0,249,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95, - 214,0,0,0,0,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,168,0,0,176,8,9,70,249,0,1,63,214,160,0,0,180,19,0,64,249,153,9,0,148,224,3,19,170,179,255,255,181,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95,214,31,0,1,235,97,0,0,84, - 0,0,128,82,4,0,0,20,33,36,0,145,0,36,0,145,192,16,0,20,192,3,95,214,127,35,3,213,253,123,191,169,253,3,0,145,237,16,0,148,8,28,0,83,104,0,0,53,0,0,128,82,7,0,0,20,48,10,0,148,8,28,0,83,104,0,0,53,7,17,0,148,250,255,255,23,32,0,128,82,253,123, - 193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,8,28,0,83,104,0,0,53,63,10,0,148,250,16,0,148,32,0,128,82,253,123,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,53,10,0,148, - 32,0,128,82,253,123,193,168,255,35,3,213,192,3,95,214,127,35,3,213,253,123,191,169,253,3,0,145,73,10,0,148,31,0,0,241,224,7,159,26,253,123,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,0,0,128,210,128,10, - 0,148,32,0,128,82,253,123,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,9,0,0,148,192,0,0,180,239,3,0,170,177,0,0,176,49,82,66,249,32,2,63,214,224,1,63,214,228,9,0,148,0,0,62,212,200,0,0,144,0,77,71,249,191, - 59,3,213,192,3,95,214,40,60,0,83,15,0,128,210,8,6,0,53,8,0,64,121,168,20,0,52,8,236,124,146,16,1,192,61,12,65,0,145,10,12,0,18,13,0,128,146,16,154,96,78,17,10,96,78,43,62,24,78,170,2,24,55,72,113,125,211,41,2,102,158,168,37,200,154,42,1,8,234, - 96,0,0,84,73,17,192,218,3,0,0,20,104,17,192,218,9,1,1,17,233,2,56,54,144,5,193,60,17,154,96,78,48,58,176,110,8,2,102,158,136,255,255,180,49,10,96,78,40,2,102,158,136,1,0,180,9,17,192,218,13,0,0,20,72,33,0,81,9,113,125,211,169,37,201,154,40,1, - 11,234,64,254,255,84,8,17,192,218,10,1,1,17,138,13,74,139,6,0,0,20,40,62,24,78,9,17,192,218,41,1,1,17,40,125,64,211,138,13,72,139,64,65,0,209,120,0,0,20,54,12,2,78,12,236,124,146,144,1,192,61,9,12,0,18,6,14,128,82,10,0,128,146,18,154,96,78,17, - 142,118,110,82,10,96,78,51,10,96,78,71,62,24,78,109,62,24,78,137,1,24,55,40,113,125,211,73,37,200,154,104,2,102,158,11,1,9,138,72,2,102,158,14,1,9,234,97,0,0,84,171,1,0,181,10,0,0,20,202,17,192,218,12,0,0,20,40,33,0,81,9,113,125,211,74,37,201, - 154,77,1,13,138,71,1,7,138,11,0,128,210,14,0,128,210,71,0,0,181,205,2,0,180,232,16,192,218,10,1,1,17,107,0,0,180,105,17,192,218,3,0,0,20,168,17,192,218,9,1,1,17,95,1,9,107,98,0,0,84,0,0,128,210,76,0,0,20,45,2,102,158,43,62,24,78,106,6,56,54, - 107,0,0,180,105,17,192,218,3,0,0,20,168,17,192,218,9,1,1,17,200,0,9,75,143,13,72,139,144,13,193,60,19,142,118,110,20,154,96,78,112,30,180,78,17,58,176,110,40,2,102,158,72,255,255,180,114,10,96,78,149,10,96,78,75,2,102,158,174,2,102,158,77,62, - 24,78,110,0,0,180,202,17,192,218,4,0,0,20,168,62,24,78,9,17,192,218,42,1,1,17,107,0,0,180,105,17,192,218,3,0,0,20,168,17,192,218,9,1,1,17,95,1,9,107,35,2,0,84,109,2,102,158,107,62,24,78,202,251,63,55,41,0,128,210,14,2,0,181,72,1,1,81,40,33,200, - 154,9,5,0,209,42,1,11,234,96,0,0,84,73,17,192,218,3,0,0,20,168,17,192,218,9,1,1,17,201,0,9,75,23,0,0,20,224,3,15,170,23,0,0,20,41,0,128,210,14,1,0,180,40,33,202,154,9,5,0,209,42,1,13,138,75,17,192,218,9,6,128,82,41,1,11,75,12,0,0,20,72,1,1,81, - 40,33,200,154,9,5,0,209,42,1,11,234,96,0,0,84,73,17,192,218,3,0,0,20,168,17,192,218,9,1,1,17,8,14,128,82,9,1,9,75,40,125,64,211,128,13,72,139,192,3,95,214,0,0,0,0,0,0,0,0,200,0,0,144,8,1,22,145,201,0,0,176,40,141,3,249,32,0,128,82,192,3,95,214, - 0,0,0,0,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,200,0,0,144,0,161,52,145,227,2,0,148,200,0,0,144,0,1,53,145,224,2,0,148,32,0,128,82,253,123,193,168,255,35,3,213,192,3,95,214,0,0,0,0,0,0,0,0,0,0,0,0,32,0,128,82,192,3,95,214,31,32,3,213, - 0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,91,3,0,148,32,0,128,82,253,123,193,168,255,35,3,213,192,3,95,214,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,200,0,0,144,19,9,64,249,224,3,19,170,225,23,0,148,224,3,19,170,155,0,0,148, - 224,3,19,170,83,24,0,148,224,3,19,170,49,25,0,148,224,3,19,170,185,0,0,148,32,0,128,82,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95,214,0,0,0,0,0,0,0,0,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,0,0,128,82,220,254,255,151,0,28,0, - 83,253,123,193,168,255,35,3,213,192,3,95,214,0,0,0,0,0,0,0,0,0,0,0,0,127,35,3,213,243,83,191,169,253,123,191,169,253,3,0,145,212,0,0,176,128,110,67,249,234,230,255,151,0,1,0,53,128,110,67,249,200,0,0,144,19,193,0,145,31,0,19,235,96,0,0,84,73, - 23,0,148,147,110,3,249,32,0,128,82,253,123,193,168,243,83,193,168,255,35,3,213,192,3,95,214,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,211,0,0,176,96,154,67,249,60,23,0,148,127,154,3,249,211,0,0,176,96,158,67,249,56,23,0,148,127, - 158,3,249,211,0,0,176,96,94,67,249,52,23,0,148,127,94,3,249,211,0,0,176,96,98,67,249,48,23,0,148,127,98,3,249,32,0,128,82,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,104,0,0,208,0,65, - 12,145,1,0,4,145,60,23,0,148,0,28,0,83,253,123,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,8,28,0,83,232,0,0,52,200,0,0,176,8,149,67,249,72,0,0,180,220,24,0,148,32,0,128,82,6,0,0,20,104,0,0,208,0,65,12, - 145,1,0,4,145,90,23,0,148,0,28,0,83,253,123,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,0,28,0,83,138,17,0,148,32,0,128,82,253,123,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,191,169, - 253,3,0,145,255,17,0,148,31,0,0,241,224,7,159,26,253,123,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,49,18,0,148,32,0,128,82,253,123,193,168,255,35,3,213,192,3,95,214,127,35,3,213,243,15,31,248,253,123, - 191,169,253,3,0,145,243,3,0,170,21,0,0,148,232,3,0,170,72,1,0,180,224,3,19,170,239,3,8,170,177,0,0,176,49,82,66,249,32,2,63,214,224,1,63,214,31,0,0,113,224,7,159,26,2,0,0,20,0,0,128,82,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95,214,200, - 0,0,144,0,1,6,249,192,3,95,214,0,0,0,0,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,0,0,128,82,17,17,0,148,200,0,0,144,9,9,64,249,42,21,0,18,203,0,0,144,104,1,70,249,41,1,8,202,51,45,202,154,0,0,128,82,18,17,0,148,224,3,19,170,253, - 123,193,168,243,7,65,248,255,35,3,213,192,3,95,214,200,0,0,144,0,17,76,185,191,59,3,213,192,3,95,214,2,0,128,82,65,0,128,82,94,0,0,20,0,0,0,0,34,0,128,82,1,0,128,82,0,0,128,82,89,0,0,20,200,0,0,144,0,5,6,249,192,3,95,214,0,0,0,0,127,35,3,213, - 243,15,31,248,253,123,190,169,253,3,0,145,104,0,0,208,1,65,16,145,48,0,128,146,169,0,0,176,40,33,46,145,191,67,1,169,9,253,223,200,243,3,0,42,162,67,0,145,0,0,128,82,32,1,63,214,0,2,0,52,104,0,0,208,1,161,16,145,168,0,0,176,8,129,46,145,160, - 11,64,249,9,253,223,200,32,1,63,214,232,3,0,170,232,0,0,180,224,3,19,42,239,3,8,170,177,0,0,176,49,82,66,249,32,2,63,214,224,1,63,214,160,11,64,249,160,0,0,180,168,0,0,176,8,33,44,145,9,253,223,200,32,1,63,214,253,123,194,168,243,7,65,248,255, - 35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,187,25,0,148,31,4,0,113,192,0,0,84,172,25,0,148,8,28,0,83,31,1,0,113,224,23,159,26,2,0,0,20,0,0,128,82,253,123,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243, - 15,31,248,253,123,191,169,253,3,0,145,243,3,0,42,235,255,255,151,8,28,0,83,72,1,0,52,168,0,0,176,8,1,45,145,9,253,223,200,32,1,63,214,168,0,0,176,8,193,50,145,9,253,223,200,225,3,19,42,32,1,63,214,224,3,19,42,180,255,255,151,168,0,0,176,8,225, - 42,145,9,253,223,200,224,3,19,42,32,1,63,214,0,0,62,212,0,0,0,0,127,35,3,213,243,15,31,248,253,123,187,169,253,3,0,145,48,0,128,146,176,35,0,249,243,3,0,42,162,135,2,41,98,3,0,53,168,0,0,176,8,65,46,145,9,253,223,200,0,0,128,210,32,1,63,214, - 160,2,0,180,8,0,64,121,169,73,139,82,31,1,9,107,33,2,0,84,8,60,64,185,10,170,136,82,9,192,40,139,40,1,64,185,31,1,10,107,97,1,0,84,40,49,64,121,31,45,8,113,1,1,0,84,40,133,64,185,31,57,0,113,169,0,0,84,40,249,64,185,104,0,0,52,224,3,19,42,138, - 255,255,151,168,99,0,145,191,67,0,57,168,23,0,249,169,83,0,145,168,67,0,145,169,35,3,169,72,0,128,82,163,115,0,145,168,163,3,41,162,163,0,145,161,131,0,145,160,71,0,145,79,0,0,148,31,32,3,213,168,23,64,185,168,0,0,52,253,123,197,168,243,7,65, - 248,255,35,3,213,192,3,95,214,224,3,19,42,174,255,255,151,0,0,62,212,127,35,3,213,243,83,191,169,253,123,189,169,253,3,0,145,243,3,0,170,180,0,0,240,136,82,112,57,200,6,0,53,33,0,128,82,168,0,0,240,0,65,48,145,159,229,255,151,104,2,64,249,9, - 1,64,185,201,2,0,53,168,0,0,240,10,9,64,249,73,21,0,18,170,15,0,249,168,0,0,240,8,5,70,249,31,1,10,235,96,1,0,84,72,1,8,202,9,45,201,154,2,0,128,210,1,0,128,82,0,0,128,210,239,3,9,170,177,0,0,144,49,82,66,249,32,2,63,214,224,1,63,214,168,0,0, - 240,0,161,52,145,5,0,0,20,63,5,0,113,129,0,0,84,168,0,0,240,0,1,53,145,88,1,0,148,104,2,64,249,9,1,64,185,201,0,0,53,168,0,0,144,1,129,20,145,169,0,0,144,32,1,20,145,156,2,0,148,168,0,0,144,1,193,20,145,169,0,0,144,32,161,20,145,151,2,0,148, - 104,6,64,249,9,1,64,185,169,0,0,53,41,0,128,82,137,82,48,57,104,10,64,249,9,1,0,57,253,123,195,168,243,83,193,168,255,35,3,213,192,3,95,214,223,6,0,148,0,0,62,212,0,0,0,0,127,35,3,213,243,83,191,169,253,123,190,169,253,3,0,145,244,3,2,170,243, - 3,3,170,179,11,0,249,32,0,64,185,24,16,0,148,224,3,20,170,178,255,255,151,96,2,64,185,30,16,0,148,253,123,194,168,243,83,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,190,169,245,91,1,169,253,123,189,169,253,3,0,145,245,3,0,42, - 117,11,0,52,168,6,0,81,31,5,0,113,233,0,0,84,10,25,0,148,200,2,128,82,8,0,0,185,33,22,0,148,212,2,128,82,83,0,0,20,40,19,0,148,179,0,0,240,97,130,48,145,130,32,128,82,0,0,128,210,115,28,0,148,104,130,48,145,201,0,0,144,40,85,3,249,201,0,0,144, - 52,77,67,249,116,0,0,180,136,2,192,57,72,0,0,53,116,130,48,145,228,131,0,145,255,255,1,169,227,99,0,145,2,0,128,210,1,0,128,210,224,3,20,170,97,0,0,148,246,135,65,169,34,0,128,210,224,3,22,170,63,0,0,148,243,3,0,170,19,1,0,181,232,24,0,148,136, - 1,128,82,8,0,0,185,0,0,128,210,154,21,0,148,148,1,128,82,48,0,0,20,98,14,22,139,228,131,0,145,227,99,0,145,225,3,19,170,224,3,20,170,78,0,0,148,191,6,0,113,33,1,0,84,232,15,64,249,203,0,0,144,115,93,3,249,0,0,128,210,8,5,0,81,202,0,0,144,72, - 177,6,185,30,0,0,20,225,67,0,145,255,11,0,249,224,3,19,170,86,25,0,148,244,3,0,42,244,0,0,52,224,11,64,249,128,21,0,148,224,3,19,170,255,11,0,249,125,21,0,148,20,0,0,20,234,11,64,249,9,0,128,210,72,1,64,249,235,3,10,170,136,0,0,180,104,141,64, - 248,41,5,0,145,200,255,255,181,203,0,0,144,105,177,6,185,255,11,0,249,200,0,0,144,10,93,3,249,0,0,128,210,109,21,0,148,255,11,0,249,224,3,19,170,106,21,0,148,20,0,128,82,224,3,20,42,253,123,195,168,245,91,65,169,243,83,194,168,255,35,3,213,192, - 3,95,214,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,8,0,252,146,31,0,8,235,98,2,0,84,8,0,128,146,66,0,0,181,128,0,62,212,8,9,194,154,63,0,8,235,162,1,0,84,41,124,2,155,232,15,32,170,31,1,9,235,41,1,0,84,32,13,0,139,33,0,128,210,243, - 24,0,148,243,3,0,170,0,0,128,210,76,21,0,148,224,3,19,170,2,0,0,20,0,0,128,210,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95,214,127,35,3,213,243,83,188,169,245,91,1,169,247,99,2,169,249,107,3,169,253,123,191,169,253,3,0,145,249,3,4,170, - 250,3,3,170,63,3,0,249,40,0,128,210,72,3,0,249,244,3,0,170,246,3,1,170,243,3,2,170,118,0,0,180,211,2,0,249,214,34,0,145,23,0,128,82,248,3,20,170,136,22,192,56,31,137,0,113,161,0,0,84,255,2,0,113,247,23,159,26,85,4,128,82,21,0,0,20,40,3,64,249, - 9,5,0,145,41,3,0,249,147,0,0,180,136,242,223,56,104,2,0,57,115,6,0,145,149,242,223,56,224,3,21,42,112,28,0,148,32,1,0,52,40,3,64,249,9,5,0,145,41,3,0,249,147,0,0,180,136,2,192,57,104,2,0,57,115,6,0,145,20,11,0,145,21,1,0,52,151,252,255,53,191, - 130,0,113,164,26,73,122,33,252,255,84,147,0,0,180,127,242,31,56,2,0,0,20,148,6,0,209,21,0,128,82,151,11,128,82,136,2,192,57,40,1,0,52,31,129,0,113,96,0,0,84,31,37,0,113,161,0,0,84,136,6,0,145,244,3,8,170,8,1,192,57,249,255,255,23,200,8,0,52, - 118,0,0,180,211,2,0,249,214,34,0,145,72,3,64,249,9,5,0,145,73,3,0,249,136,2,192,57,43,0,128,82,10,0,128,82,3,0,0,20,136,30,192,56,74,5,0,17,31,113,1,113,160,255,255,84,31,137,0,113,129,1,0,84,74,1,0,55,213,0,0,52,136,6,192,57,31,137,0,113,97, - 0,0,84,148,6,0,145,4,0,0,20,191,2,0,113,245,23,159,26,11,0,128,82,74,125,1,83,42,1,0,52,74,5,0,81,115,0,0,180,119,2,0,57,115,6,0,145,40,3,64,249,9,5,0,145,41,3,0,249,42,255,255,53,136,2,192,57,40,3,0,52,149,0,0,53,31,129,0,113,4,25,73,122,160, - 2,0,84,75,2,0,52,115,0,0,180,104,2,0,57,115,6,0,145,128,2,192,57,33,28,0,148,32,1,0,52,40,3,64,249,148,6,0,145,9,5,0,145,41,3,0,249,147,0,0,180,136,2,192,57,104,2,0,57,115,6,0,145,40,3,64,249,9,5,0,145,41,3,0,249,148,6,0,145,201,255,255,23,115, - 0,0,180,127,2,0,57,115,6,0,145,40,3,64,249,9,5,0,145,41,3,0,249,177,255,255,23,86,0,0,180,223,2,0,249,72,3,64,249,9,5,0,145,73,3,0,249,253,123,193,168,249,107,67,169,247,99,66,169,245,91,65,169,243,83,196,168,255,35,3,213,192,3,95,214,0,0,0, - 0,96,0,0,181,0,0,128,18,10,0,0,20,9,8,64,249,8,0,64,249,31,1,9,235,161,0,0,84,168,0,0,240,8,9,64,249,8,32,0,169,8,8,0,249,0,0,128,82,192,3,95,214,0,0,0,0,127,35,3,213,253,123,188,169,253,3,0,145,48,0,128,146,168,131,0,145,168,195,2,169,160,19, - 0,249,72,0,128,82,163,83,0,145,168,163,2,41,162,163,0,145,161,99,0,145,160,67,0,145,87,0,0,148,31,32,3,213,253,123,196,168,255,35,3,213,192,3,95,214,127,35,3,213,243,83,188,169,245,91,1,169,247,99,2,169,249,27,0,249,253,123,191,169,253,3,0,145, - 245,3,0,170,168,2,64,249,10,1,64,249,106,0,0,181,0,0,128,18,63,0,0,20,185,0,0,240,43,11,64,249,73,1,64,249,104,1,9,202,109,21,0,18,20,45,205,154,72,5,64,249,9,1,11,202,136,6,0,209,31,13,0,177,51,45,205,154,72,6,0,84,248,3,11,170,246,3,20,170, - 247,3,19,170,115,34,0,209,127,2,20,235,195,3,0,84,104,2,64,249,31,1,24,235,96,255,255,84,8,1,11,202,120,2,0,249,8,45,205,154,239,3,8,170,177,0,0,144,49,82,66,249,32,2,63,214,224,1,63,214,169,2,64,249,43,11,64,249,42,1,64,249,109,21,0,18,72,1, - 64,249,9,1,11,202,72,5,64,249,44,45,205,154,159,1,22,235,9,1,11,202,42,45,205,154,64,1,87,250,192,252,255,84,246,3,12,170,244,3,12,170,247,3,10,170,243,3,10,170,225,255,255,23,159,6,0,177,128,0,0,84,224,3,20,170,79,20,0,148,43,11,64,249,168, - 2,64,249,9,1,64,249,43,1,0,249,170,2,64,249,72,1,64,249,11,5,0,249,169,2,64,249,42,1,64,249,75,9,0,249,0,0,128,82,253,123,193,168,249,27,64,249,247,99,66,169,245,91,65,169,243,83,196,168,255,35,3,213,192,3,95,214,127,35,3,213,243,83,191,169, - 253,123,190,169,253,3,0,145,243,3,2,170,244,3,3,170,180,11,0,249,32,0,64,185,120,14,0,148,224,3,19,170,164,255,255,151,243,3,0,42,128,2,64,185,125,14,0,148,224,3,19,42,253,123,194,168,243,83,193,168,255,35,3,213,192,3,95,214,0,0,0,0,46,0,0,20, - 31,32,3,213,31,32,3,213,0,0,0,0,127,35,3,213,243,83,191,169,253,123,190,169,253,3,0,145,48,0,128,146,176,11,0,249,168,0,0,240,19,97,53,145,224,3,19,170,69,0,0,148,31,32,3,213,96,34,0,145,90,0,0,148,31,32,3,213,168,0,0,240,19,185,70,249,83,1, - 0,180,104,2,64,249,244,3,19,170,168,0,0,180,224,3,8,170,15,20,0,148,136,142,64,248,168,255,255,181,224,3,19,170,11,20,0,148,168,0,0,240,19,181,70,249,83,1,0,180,104,2,64,249,244,3,19,170,168,0,0,180,224,3,8,170,3,20,0,148,136,142,64,248,168, - 255,255,181,224,3,19,170,255,19,0,148,253,123,194,168,243,83,193,168,255,35,3,213,192,3,95,214,127,35,3,213,243,83,191,169,253,123,191,169,253,3,0,145,180,0,0,240,136,174,70,249,104,0,0,180,0,0,128,82,23,0,0,20,95,17,0,148,8,28,0,148,243,3,0, - 170,179,0,0,181,0,0,128,210,236,19,0,148,0,0,128,18,15,0,0,20,224,3,19,170,66,0,0,148,96,0,0,181,20,0,128,18,5,0,0,20,168,0,0,240,0,185,6,249,128,174,6,249,20,0,128,82,0,0,128,210,223,19,0,148,224,3,19,170,221,19,0,148,224,3,20,42,253,123,193, - 168,243,83,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,191,169,253,123,191,169,253,3,0,145,168,0,0,240,8,185,70,249,19,0,64,249,127,2,8,235,96,1,0,84,83,1,0,180,104,2,64,249,244,3,19,170,168,0,0,180,224,3,8,170,200,19,0,148, - 136,142,64,248,168,255,255,181,224,3,19,170,196,19,0,148,253,123,193,168,243,83,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,191,169,253,123,191,169,253,3,0,145,168,0,0,240,8,181,70,249,19,0,64,249,127,2,8,235,96,1,0,84,83,1, - 0,180,104,2,64,249,244,3,19,170,168,0,0,180,224,3,8,170,176,19,0,148,136,142,64,248,168,255,255,181,224,3,19,170,172,19,0,148,253,123,193,168,243,83,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,189,169,245,91,1,169,247,19,0, - 249,253,123,191,169,253,3,0,145,245,3,0,170,168,2,192,57,234,3,21,170,9,0,128,210,40,1,0,52,31,245,0,113,41,5,137,154,75,5,0,145,72,29,192,56,200,255,255,53,106,5,0,145,72,1,192,57,40,255,255,53,1,1,128,210,32,5,0,145,53,23,0,148,243,3,0,170, - 179,0,0,181,0,0,128,210,141,19,0,148,0,0,128,210,42,0,0,20,246,3,19,170,170,2,192,57,138,4,0,52,233,3,21,170,43,5,0,145,40,29,192,56,200,255,255,53,104,1,21,203,23,5,0,145,95,245,0,113,192,1,0,84,33,0,128,210,224,3,23,170,33,23,0,148,244,3,0, - 170,116,1,0,180,226,3,21,170,225,3,23,170,178,11,0,148,128,3,0,53,212,2,0,249,0,0,128,210,214,34,0,145,115,19,0,148,245,2,21,139,232,255,255,23,104,2,64,249,244,3,19,170,168,0,0,180,224,3,8,170,108,19,0,148,136,142,64,248,168,255,255,181,224, - 3,19,170,104,19,0,148,0,0,128,210,102,19,0,148,215,255,255,23,0,0,128,210,99,19,0,148,224,3,19,170,253,123,193,168,247,19,64,249,245,91,65,169,243,83,195,168,255,35,3,213,192,3,95,214,4,0,128,210,3,0,128,82,2,0,128,210,1,0,128,210,0,0,128,210, - 192,19,0,148,0,0,62,212,127,35,3,213,243,83,191,169,253,123,191,169,253,3,0,145,243,3,0,170,244,3,1,170,8,0,0,20,104,134,64,248,200,0,0,180,239,3,8,170,177,0,0,144,49,82,66,249,32,2,63,214,224,1,63,214,127,2,20,235,1,255,255,84,253,123,193,168, - 243,83,193,168,255,35,3,213,192,3,95,214,127,35,3,213,243,83,191,169,253,123,191,169,253,3,0,145,243,3,0,170,244,3,1,170,127,2,20,235,64,1,0,84,104,134,64,248,168,255,255,180,239,3,8,170,177,0,0,144,49,82,66,249,32,2,63,214,224,1,63,214,224, - 254,255,52,2,0,0,20,0,0,128,82,253,123,193,168,243,83,193,168,255,35,3,213,192,3,95,214,8,1,0,24,31,0,8,107,96,0,0,84,0,0,128,82,3,0,0,20,224,3,8,42,4,0,0,20,192,3,95,214,99,115,109,224,0,0,0,0,127,35,3,213,243,83,190,169,245,91,1,169,253,123, - 191,169,253,3,0,145,244,3,0,42,245,3,1,170,29,14,0,148,243,3,0,170,115,1,0,180,107,2,64,249,106,1,3,145,127,1,10,235,233,3,11,170,192,0,0,84,40,5,65,184,31,1,20,107,32,1,0,84,63,1,10,235,129,255,255,84,0,0,128,82,253,123,193,168,245,91,65,169, - 243,83,194,168,255,35,3,213,192,3,95,214,40,65,0,209,40,255,255,180,10,5,64,249,234,254,255,180,95,21,0,241,129,0,0,84,31,5,0,249,32,0,128,82,243,255,255,23,95,5,0,241,97,0,0,84,0,0,128,18,239,255,255,23,118,6,64,249,117,6,0,249,0,5,64,185,31, - 32,0,113,97,9,0,84,105,193,0,145,44,65,2,145,3,0,0,20,63,5,0,249,41,65,0,145,63,1,12,235,161,255,255,84,8,1,64,185,73,9,0,24,116,18,64,185,31,1,9,107,200,3,0,84,64,3,0,84,201,8,0,24,31,1,9,107,128,2,0,84,137,8,0,24,31,1,9,107,192,1,0,84,73,8, - 0,24,31,1,9,107,0,1,0,84,9,8,0,24,31,1,9,107,225,3,20,42,33,5,0,84,40,16,128,82,33,16,128,82,37,0,0,20,200,16,128,82,193,16,128,82,34,0,0,20,104,16,128,82,97,16,128,82,31,0,0,20,72,16,128,82,65,16,128,82,28,0,0,20,136,16,128,82,129,16,128,82, - 25,0,0,20,201,5,0,24,31,1,9,107,128,2,0,84,137,5,0,24,31,1,9,107,192,1,0,84,73,5,0,24,31,1,9,107,0,1,0,84,9,5,0,24,31,1,9,107,225,3,20,42,161,1,0,84,168,17,128,82,161,17,128,82,9,0,0,20,200,17,128,82,193,17,128,82,6,0,0,20,168,16,128,82,161, - 16,128,82,3,0,0,20,72,17,128,82,65,17,128,82,104,18,0,185,0,1,128,82,239,3,10,170,177,0,0,144,49,82,66,249,32,2,63,214,224,1,63,214,116,18,0,185,7,0,0,20,31,5,0,249,239,3,10,170,177,0,0,144,49,82,66,249,32,2,63,214,224,1,63,214,118,6,0,249,168, - 255,255,23,145,0,0,192,141,0,0,192,142,0,0,192,143,0,0,192,144,0,0,192,146,0,0,192,147,0,0,192,180,2,0,192,181,2,0,192,0,0,0,0,4,0,128,82,3,0,0,20,31,32,3,213,0,0,0,0,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,225,0,0,181,217,21, - 0,148,200,2,128,82,8,0,0,185,240,18,0,148,192,2,128,82,23,0,0,20,162,1,0,180,136,28,64,211,63,0,0,121,9,5,0,145,95,0,9,235,168,0,0,84,205,21,0,148,72,4,128,82,83,4,128,82,7,0,0,20,104,8,0,81,31,137,0,113,9,1,0,84,198,21,0,148,200,2,128,82,211, - 2,128,82,8,0,0,185,220,18,0,148,224,3,19,42,3,0,0,20,132,28,0,83,6,0,0,148,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,136,28,0,83,238,3,1,170,13,0,128,210,200,0,0,52,168,5,128,82,40, - 0,0,121,46,8,0,145,45,0,128,210,224,3,0,75,235,3,14,170,7,6,128,82,230,10,128,82,236,3,14,170,67,0,0,53,128,0,62,212,8,8,195,26,9,129,3,27,207,9,0,145,0,8,195,26,173,5,0,145,63,37,0,113,232,144,134,26,9,33,41,11,201,1,0,121,128,0,0,52,238,3, - 15,170,191,1,2,235,35,254,255,84,191,1,2,235,3,1,0,84,63,0,0,121,150,21,0,148,72,4,128,82,8,0,0,185,173,18,0,148,64,4,128,82,9,0,0,20,255,1,0,121,137,229,95,120,104,37,64,120,136,5,0,121,127,1,12,235,105,225,31,120,99,255,255,84,0,0,128,82,253, - 123,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,168,0,0,240,8,65,71,185,104,1,0,53,224,0,0,181,125,21,0,148,200,2,128,82,8,0,0,185,148,18,0,148,0,0,176,18,6,0,0,20,65,255,255,180,82,0,0,148,3,0,0,20,2,0, - 128,210,5,0,0,148,253,123,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,190,169,245,91,1,169,253,123,189,169,253,3,0,145,245,3,1,170,225,3,2,170,243,3,0,170,243,0,0,181,101,21,0,148,200,2,128,82,8,0,0,185,124,18,0,148,0,0,176, - 18,54,0,0,20,85,255,255,180,224,67,0,145,73,0,0,148,235,15,64,249,104,157,64,249,168,0,0,181,225,3,21,170,224,3,19,170,51,0,0,148,38,0,0,20,104,0,0,208,22,1,34,145,96,38,64,120,31,0,4,113,66,1,0,84,12,28,64,211,200,10,0,145,9,121,108,120,137, - 0,0,54,104,137,64,249,20,105,108,56,7,0,0,20,20,28,0,83,5,0,0,20,225,99,0,145,100,26,0,148,235,15,64,249,20,60,0,83,160,38,64,120,31,0,4,113,66,1,0,84,12,28,64,211,200,10,0,145,9,121,108,120,137,0,0,54,104,137,64,249,9,105,108,56,7,0,0,20,9, - 28,0,83,5,0,0,20,225,99,0,145,84,26,0,148,235,15,64,249,9,60,0,83,128,2,9,75,64,0,0,53,212,251,255,53,232,163,64,57,168,0,0,52,234,11,64,249,72,169,67,185,9,121,30,18,73,169,3,185,253,123,195,168,245,91,65,169,243,83,194,168,255,35,3,213,192, - 3,95,214,0,0,0,0,237,3,0,170,170,37,64,120,43,36,64,120,72,5,1,81,31,101,0,113,73,129,0,17,104,5,1,81,76,129,137,26,105,129,0,17,31,101,0,113,104,129,137,26,128,1,8,75,64,0,0,53,140,254,255,53,192,3,95,214,0,0,0,0,127,35,3,213,243,15,31,248, - 253,123,191,169,253,3,0,145,243,3,0,170,127,98,0,57,129,0,0,180,48,0,192,61,112,130,128,60,27,0,0,20,168,0,0,240,8,65,71,185,200,0,0,53,168,0,0,208,8,97,27,145,17,1,192,61,113,130,128,60,19,0,0,20,78,12,0,148,97,34,0,145,96,2,0,249,8,72,64,249, - 104,6,0,249,9,68,64,249,105,10,0,249,91,26,0,148,96,2,64,249,97,66,0,145,110,26,0,148,105,2,64,249,40,169,67,185,168,0,8,55,8,1,31,50,42,0,128,82,40,169,3,185,106,98,0,57,224,3,19,170,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95,214,0, - 0,0,0,127,35,3,213,243,83,191,169,253,123,186,169,253,3,0,145,168,0,0,240,8,65,71,185,255,19,0,249,255,195,0,57,255,35,1,57,255,67,1,57,255,99,1,57,8,1,0,53,168,0,0,208,8,97,27,145,16,1,192,61,233,227,0,145,48,1,128,61,41,0,128,82,233,35,1,57, - 224,127,1,169,35,0,128,82,224,131,0,145,66,1,128,82,225,67,0,145,182,0,0,148,232,35,65,57,244,3,0,42,31,9,0,113,161,0,0,84,234,19,64,249,72,169,67,185,9,121,30,18,73,169,3,185,232,67,65,57,168,0,0,52,224,131,0,145,243,79,64,185,41,0,0,148,19, - 32,0,185,232,99,65,57,168,0,0,52,224,131,0,145,243,87,64,185,35,0,0,148,19,36,0,185,224,3,20,42,253,123,198,168,243,83,193,168,255,35,3,213,192,3,95,214,127,35,3,213,243,83,191,169,253,123,191,169,253,3,0,145,244,3,0,170,136,162,64,57,31,9,0, - 113,161,0,0,84,138,2,64,249,72,169,67,185,9,121,30,18,73,169,3,185,136,194,64,57,168,0,0,52,224,3,20,170,147,46,64,185,12,0,0,148,19,32,0,185,136,226,64,57,168,0,0,52,224,3,20,170,147,54,64,185,6,0,0,148,19,36,0,185,253,123,193,168,243,83,193, - 168,255,35,3,213,192,3,95,214,127,35,3,213,243,83,191,169,253,123,190,169,253,3,0,145,244,3,0,170,136,2,64,249,8,3,0,181,136,0,0,240,8,225,45,145,9,253,223,200,32,1,63,214,136,66,64,57,224,19,0,185,200,0,0,53,40,0,128,82,159,6,0,249,136,66,0, - 57,1,0,128,210,2,0,0,20,129,6,64,249,224,67,0,145,147,12,0,148,136,0,0,240,8,97,50,145,243,3,0,170,224,19,64,185,147,2,0,249,9,253,223,200,32,1,63,214,211,0,0,180,128,2,64,249,253,123,194,168,243,83,193,168,255,35,3,213,192,3,95,214,195,2,0, - 148,0,0,62,212,0,0,0,0,127,35,3,213,243,83,190,169,245,11,0,249,253,123,190,169,253,3,0,145,244,3,0,170,136,2,64,249,8,3,0,181,136,0,0,240,8,225,45,145,9,253,223,200,32,1,63,214,136,66,64,57,224,19,0,185,200,0,0,53,40,0,128,82,159,6,0,249,136, - 66,0,57,1,0,128,210,2,0,0,20,129,6,64,249,224,67,0,145,108,12,0,148,136,0,0,240,8,97,50,145,243,3,0,170,224,19,64,185,147,2,0,249,9,253,223,200,32,1,63,214,83,3,0,180,149,2,64,249,147,34,0,145,98,2,64,249,129,98,0,145,168,74,64,249,224,3,21, - 170,136,14,0,249,169,70,64,249,137,18,0,249,218,25,0,148,98,2,64,249,129,130,0,145,224,3,21,170,236,25,0,148,168,170,67,185,168,0,8,55,8,1,31,50,73,0,128,82,168,170,3,185,137,162,0,57,253,123,194,168,245,11,64,249,243,83,194,168,255,35,3,213, - 192,3,95,214,136,2,0,148,0,0,62,212,127,35,3,213,243,83,191,169,253,123,190,169,253,3,0,145,136,0,0,240,8,225,45,145,9,253,223,200,244,3,0,170,32,1,63,214,136,66,64,57,224,19,0,185,200,0,0,53,40,0,128,82,159,6,0,249,136,66,0,57,1,0,128,210,2, - 0,0,20,129,6,64,249,224,67,0,145,53,12,0,148,136,0,0,240,8,97,50,145,243,3,0,170,224,19,64,185,147,2,0,249,9,253,223,200,32,1,63,214,224,3,19,170,253,123,194,168,243,83,193,168,255,35,3,213,192,3,95,214,127,35,3,213,243,83,187,169,245,91,1,169, - 247,99,2,169,249,107,3,169,251,35,0,249,253,123,190,169,253,3,0,145,244,3,1,170,224,11,0,249,153,2,64,249,246,3,2,42,117,28,0,83,249,15,0,249,217,0,0,181,13,20,0,148,200,2,128,82,8,0,0,185,36,17,0,148,16,0,0,20,150,2,0,52,200,10,0,81,31,137, - 0,113,41,2,0,84,40,0,128,82,201,2,128,82,8,192,0,57,9,44,0,185,229,3,0,170,0,0,128,210,4,0,128,210,3,0,128,82,2,0,128,210,1,0,128,210,34,17,0,148,137,6,64,249,169,45,0,180,136,2,64,249,40,1,0,249,106,1,0,20,40,11,0,145,51,3,64,121,136,2,0,249, - 24,0,128,82,9,160,64,57,201,0,0,53,120,255,255,151,4,0,0,20,136,2,64,249,19,37,64,120,136,2,0,249,224,3,19,42,1,1,128,82,213,25,0,148,64,255,255,53,168,2,31,50,127,182,0,113,181,18,136,26,104,174,0,81,169,255,159,82,31,1,9,106,129,0,0,84,136, - 2,64,249,19,37,64,120,136,2,0,249,223,122,27,114,26,226,159,82,27,8,130,82,73,9,130,82,8,252,130,82,74,253,130,82,12,254,156,82,14,2,131,82,75,227,159,82,225,19,0,84,127,194,0,113,131,13,0,84,127,234,0,113,98,0,0,84,104,194,0,81,102,0,0,20,127, - 2,26,107,34,12,0,84,127,130,25,113,131,12,0,84,127,170,25,113,98,0,0,84,104,130,25,81,94,0,0,20,127,194,27,113,195,11,0,84,127,234,27,113,98,0,0,84,104,194,27,81,88,0,0,20,127,154,37,113,3,11,0,84,127,194,37,113,98,0,0,84,104,154,37,81,82,0, - 0,20,127,154,39,113,67,10,0,84,127,194,39,113,98,0,0,84,104,154,39,81,76,0,0,20,127,154,41,113,131,9,0,84,127,194,41,113,98,0,0,84,104,154,41,81,70,0,0,20,127,154,43,113,195,8,0,84,127,194,43,113,98,0,0,84,104,154,43,81,64,0,0,20,127,154,45, - 113,3,8,0,84,127,194,45,113,98,0,0,84,104,154,45,81,58,0,0,20,127,154,49,113,67,7,0,84,127,194,49,113,98,0,0,84,104,154,49,81,52,0,0,20,127,154,51,113,131,6,0,84,127,194,51,113,98,0,0,84,104,154,51,81,46,0,0,20,127,154,53,113,195,5,0,84,127, - 194,53,113,98,0,0,84,104,154,53,81,40,0,0,20,127,66,57,113,3,5,0,84,127,106,57,113,98,0,0,84,104,66,57,81,34,0,0,20,127,66,59,113,67,4,0,84,127,106,59,113,98,0,0,84,104,66,59,81,28,0,0,20,127,130,60,113,131,3,0,84,127,170,60,113,98,0,0,84,104, - 130,60,81,22,0,0,20,127,2,27,107,195,2,0,84,127,2,9,107,98,0,0,84,104,2,27,75,16,0,0,20,127,2,8,107,3,2,0,84,127,2,10,107,98,0,0,84,104,2,8,75,10,0,0,20,104,2,12,11,9,61,0,83,63,37,0,113,8,1,0,84,104,2,14,75,4,0,0,20,127,2,11,107,130,0,0,84, - 104,2,26,75,31,5,0,49,97,1,0,84,104,6,1,81,31,101,0,113,104,134,1,81,105,0,0,84,31,101,0,113,40,5,0,84,31,101,0,113,104,130,0,81,104,130,136,26,8,221,0,81,136,4,0,53,138,2,64,249,233,251,159,82,75,1,64,121,76,9,0,145,140,2,0,249,104,97,1,81, - 31,1,9,106,64,2,0,84,223,2,0,113,138,2,0,249,8,1,128,82,214,18,136,26,107,2,0,52,72,1,64,121,31,1,11,107,0,2,0,84,73,19,0,148,200,2,128,82,8,0,0,185,96,16,0,148,74,253,130,82,75,227,159,82,12,254,156,82,14,2,131,82,14,0,0,20,136,9,0,145,147, - 1,64,121,223,2,0,113,136,2,0,249,9,2,128,82,214,18,137,26,74,253,130,82,75,227,159,82,12,254,156,82,4,0,0,20,223,2,0,113,72,1,128,82,214,18,136,26,8,0,128,18,86,0,0,53,128,0,62,212,13,9,214,26,25,252,130,82,87,9,130,82,127,194,0,113,131,13,0, - 84,127,234,0,113,98,0,0,84,105,194,0,81,102,0,0,20,127,2,26,107,34,12,0,84,127,130,25,113,131,12,0,84,127,170,25,113,98,0,0,84,105,130,25,81,94,0,0,20,127,194,27,113,195,11,0,84,127,234,27,113,98,0,0,84,105,194,27,81,88,0,0,20,127,154,37,113, - 3,11,0,84,127,194,37,113,98,0,0,84,105,154,37,81,82,0,0,20,127,154,39,113,67,10,0,84,127,194,39,113,98,0,0,84,105,154,39,81,76,0,0,20,127,154,41,113,131,9,0,84,127,194,41,113,98,0,0,84,105,154,41,81,70,0,0,20,127,154,43,113,195,8,0,84,127,194, - 43,113,98,0,0,84,105,154,43,81,64,0,0,20,127,154,45,113,3,8,0,84,127,194,45,113,98,0,0,84,105,154,45,81,58,0,0,20,127,154,49,113,67,7,0,84,127,194,49,113,98,0,0,84,105,154,49,81,52,0,0,20,127,154,51,113,131,6,0,84,127,194,51,113,98,0,0,84,105, - 154,51,81,46,0,0,20,127,154,53,113,195,5,0,84,127,194,53,113,98,0,0,84,105,154,53,81,40,0,0,20,127,66,57,113,3,5,0,84,127,106,57,113,98,0,0,84,105,66,57,81,34,0,0,20,127,66,59,113,67,4,0,84,127,106,59,113,98,0,0,84,105,66,59,81,28,0,0,20,127, - 130,60,113,131,3,0,84,127,170,60,113,98,0,0,84,105,130,60,81,22,0,0,20,127,2,27,107,195,2,0,84,127,2,23,107,98,0,0,84,105,2,27,75,16,0,0,20,127,2,25,107,3,2,0,84,127,2,10,107,98,0,0,84,105,2,25,75,10,0,0,20,104,2,12,11,9,61,0,83,63,37,0,113, - 8,1,0,84,105,2,14,75,4,0,0,20,127,2,11,107,130,0,0,84,105,2,26,75,63,5,0,49,65,2,0,84,127,6,1,113,99,0,0,84,127,106,1,113,169,0,0,84,127,134,1,113,99,1,0,84,127,234,1,113,40,1,0,84,232,243,159,82,104,2,8,11,9,61,0,83,63,101,0,113,104,130,0,81, - 104,130,136,26,9,221,0,81,2,0,0,20,9,0,128,18,140,2,64,249,63,1,22,107,66,2,0,84,8,127,22,27,147,1,64,121,11,1,9,11,127,1,8,107,233,39,159,26,31,3,13,107,232,151,159,26,41,1,8,42,170,10,9,42,136,9,0,145,248,3,11,42,136,2,0,249,85,1,29,50,74, - 253,130,82,75,227,159,82,12,254,156,82,111,255,255,23,136,9,0,209,247,103,65,169,136,2,0,249,19,1,0,52,8,1,64,121,31,1,19,107,160,0,0,84,148,18,0,148,200,2,128,82,8,0,0,185,171,15,0,148,245,0,24,55,136,6,64,249,153,2,0,249,72,0,0,180,25,1,0, - 249,0,0,128,82,32,0,0,20,225,3,24,42,224,3,21,42,37,0,0,148,8,28,0,83,136,2,0,52,40,0,128,82,73,4,128,82,232,194,0,57,233,46,0,185,117,0,0,55,24,0,128,18,15,0,0,20,137,6,64,249,213,0,8,54,105,0,0,180,136,2,64,249,40,1,0,249,0,0,176,82,13,0,0, - 20,105,0,0,180,136,2,64,249,40,1,0,249,0,0,176,18,8,0,0,20,85,0,8,54,248,3,24,75,137,6,64,249,105,0,0,180,136,2,64,249,40,1,0,249,224,3,24,42,253,123,194,168,251,35,64,249,249,107,67,169,247,99,66,169,245,91,65,169,243,83,197,168,255,35,3,213, - 192,3,95,214,128,1,16,55,160,0,0,54,192,0,8,54,8,0,176,82,63,0,8,107,232,0,0,84,0,0,128,82,6,0,0,20,8,0,176,18,63,0,8,107,224,151,159,26,2,0,0,20,32,0,128,82,192,3,95,214,255,67,0,209,255,255,159,136,232,255,223,136,255,67,0,145,6,15,0,20,0, - 0,0,0,92,24,0,20,31,32,3,213,31,32,3,213,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,147,9,0,148,8,12,64,249,232,0,0,180,239,3,8,170,145,0,0,240,49,82,66,249,32,2,63,214,224,1,63,214,1,0,0,20,136,0,0,148,0,0,62,212,41,0,64,121,8,0,64,121, - 10,1,9,75,234,0,0,53,11,0,1,203,169,0,0,52,41,44,64,120,104,105,97,120,10,1,9,75,138,255,255,52,232,3,10,75,9,125,31,83,32,125,74,75,192,3,95,214,127,35,3,213,243,83,191,169,253,123,186,169,253,3,0,145,168,0,0,240,8,65,71,185,255,19,0,249,255, - 195,0,57,255,35,1,57,255,67,1,57,255,99,1,57,8,1,0,53,168,0,0,208,8,97,27,145,16,1,192,61,233,227,0,145,48,1,128,61,41,0,128,82,233,35,1,57,224,7,1,169,65,0,0,180,32,0,0,249,35,0,128,82,225,67,0,145,224,131,0,145,249,253,255,151,232,35,65,57, - 244,3,0,42,31,9,0,113,161,0,0,84,234,19,64,249,72,169,67,185,9,121,30,18,73,169,3,185,232,67,65,57,168,0,0,52,224,131,0,145,243,79,64,185,108,253,255,151,19,32,0,185,232,99,65,57,168,0,0,52,224,131,0,145,243,87,64,185,102,253,255,151,19,36,0, - 185,224,3,20,42,253,123,198,168,243,83,193,168,255,35,3,213,192,3,95,214,0,0,0,0,8,0,64,121,169,73,139,82,31,1,9,107,97,1,0,84,8,60,64,185,10,170,136,82,9,192,40,139,40,1,64,185,31,1,10,107,161,0,0,84,40,49,64,121,31,45,8,113,224,23,159,26,192, - 3,95,214,0,0,128,82,192,3,95,214,8,60,64,185,11,0,128,82,9,192,40,139,40,41,64,121,44,13,64,121,8,1,9,139,0,97,0,145,204,1,0,52,10,32,0,145,73,5,64,185,63,64,41,235,163,0,0,84,72,1,64,185,41,1,8,11,63,64,41,235,227,0,0,84,107,5,0,17,127,1,12, - 107,0,160,0,145,74,161,0,145,163,254,255,84,0,0,128,210,192,3,95,214,0,0,0,0,127,35,3,213,243,83,191,169,253,123,191,169,253,3,0,145,243,3,0,170,180,255,255,240,128,2,0,145,209,255,255,151,96,0,0,53,0,0,128,82,13,0,0,20,136,2,0,145,97,2,8,203, - 128,2,0,145,218,255,255,151,96,0,0,181,0,0,128,82,6,0,0,20,8,36,64,185,233,127,104,42,32,1,0,18,2,0,0,20,0,0,128,82,253,123,193,168,243,83,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,83,15,0,148,96,0,0, - 180,192,2,128,82,94,15,0,148,168,0,0,208,8,25,64,185,104,0,8,54,224,0,128,82,96,0,62,212,96,0,128,82,165,247,255,151,0,0,62,212,0,0,0,0,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,8,0,0,176,0,193,7,145,137,0,0,240,40,109,69,249,0, - 1,63,214,168,0,0,208,0,29,0,185,31,4,0,49,160,1,0,84,168,0,0,208,19,1,54,145,136,0,0,240,8,121,69,249,225,3,19,170,0,1,63,214,160,0,0,52,40,0,128,18,104,122,0,185,32,0,128,82,3,0,0,20,6,0,0,148,0,0,128,82,253,123,193,168,243,7,65,248,255,35, - 3,213,192,3,95,214,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,179,0,0,176,96,30,64,185,31,4,0,49,192,0,0,84,136,0,0,208,8,113,69,249,0,1,63,214,8,0,128,18,104,30,0,185,32,0,128,82,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95, - 214,127,35,3,213,253,123,191,169,253,3,0,145,7,0,0,148,128,0,0,180,253,123,193,168,255,35,3,213,192,3,95,214,184,255,255,151,0,0,62,212,127,35,3,213,243,83,190,169,245,91,1,169,253,123,191,169,253,3,0,145,182,0,0,176,200,30,64,185,31,5,0,49, - 97,0,0,84,0,0,128,210,50,0,0,20,136,0,0,208,8,189,69,249,0,1,63,214,244,3,0,42,192,30,64,185,136,0,0,208,8,117,69,249,0,1,63,214,245,3,0,170,191,6,0,177,0,1,0,84,53,4,0,181,192,30,64,185,136,0,0,208,8,121,69,249,1,0,128,146,0,1,63,214,96,0,0, - 53,21,0,128,210,25,0,0,20,1,16,128,210,32,0,128,210,159,23,0,148,243,3,0,170,192,30,64,185,136,0,0,208,8,121,69,249,147,1,0,180,225,3,19,170,0,1,63,214,192,0,0,52,40,0,128,18,104,122,0,185,245,3,19,170,19,0,128,210,7,0,0,20,192,30,64,185,136, - 0,0,208,8,121,69,249,1,0,128,210,0,1,63,214,21,0,128,210,224,3,19,170,226,254,255,151,136,0,0,208,8,77,70,249,224,3,20,42,0,1,63,214,224,3,21,170,253,123,193,168,245,91,65,169,243,83,194,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243, - 83,191,169,253,123,191,169,253,3,0,145,243,3,0,170,180,0,0,176,128,30,64,185,31,4,0,49,64,2,0,84,211,0,0,181,136,0,0,208,8,117,69,249,0,1,63,214,243,3,0,170,128,30,64,185,136,0,0,208,8,121,69,249,1,0,128,210,0,1,63,214,243,0,0,180,168,0,0,176, - 8,1,54,145,127,2,8,235,96,0,0,84,224,3,19,170,189,254,255,151,253,123,193,168,243,83,193,168,255,35,3,213,192,3,95,214,192,0,0,180,168,0,0,176,8,1,54,145,31,0,8,235,64,0,0,84,179,254,255,23,192,3,95,214,0,0,0,0,34,0,64,249,1,0,0,20,40,48,65, - 57,73,16,0,209,31,1,0,113,71,0,137,154,32,3,0,180,15,24,64,185,45,4,64,249,168,193,47,139,168,2,0,180,14,20,64,185,12,0,128,82,14,2,0,52,136,125,125,211,9,193,47,139,42,105,109,184,171,193,42,139,255,0,11,235,131,0,0,84,140,5,0,17,159,1,14,107, - 3,255,255,84,204,0,0,52,136,5,0,81,169,77,40,139,42,193,47,139,64,5,64,185,192,3,95,214,0,0,128,18,254,255,255,23,47,255,255,23,234,3,2,170,8,0,64,249,73,29,64,185,0,201,105,184,31,8,0,49,129,0,0,84,34,0,64,249,224,3,10,170,218,255,255,23,192, - 3,95,214,41,28,64,185,8,0,64,249,2,201,41,184,192,3,95,214,127,35,3,213,243,83,191,169,253,123,190,169,253,3,0,145,244,3,3,42,227,67,0,145,243,3,2,170,197,242,255,151,104,30,64,185,9,0,64,249,42,193,40,139,233,11,0,249,73,5,64,185,159,2,9,107, - 77,0,0,84,84,5,0,185,253,123,194,168,243,83,193,168,255,35,3,213,192,3,95,214,127,35,3,213,243,15,31,248,253,123,190,169,253,3,0,145,227,67,0,145,243,3,2,170,178,242,255,151,104,30,64,185,9,0,64,249,233,11,0,249,41,193,40,139,32,5,64,185,253, - 123,194,168,243,7,65,248,255,35,3,213,192,3,95,214,127,35,3,213,243,83,188,169,245,91,1,169,247,99,2,169,249,27,0,249,251,31,0,249,253,123,187,169,253,3,0,145,248,3,0,170,243,3,1,170,179,99,3,169,245,3,2,170,179,87,2,169,247,3,3,42,183,19,0, - 185,99,243,255,151,251,3,0,170,187,35,0,249,226,3,21,170,225,3,19,170,224,3,24,170,185,255,255,151,244,3,0,42,37,255,255,151,8,48,64,185,9,5,0,17,9,48,0,185,159,6,0,49,142,18,87,122,237,7,0,84,159,6,0,49,141,10,0,84,168,6,64,185,159,2,8,107, - 42,10,0,84,150,126,125,147,78,243,255,151,168,10,64,185,9,192,40,139,52,105,118,184,180,23,0,185,73,243,255,151,168,10,64,185,9,192,40,139,42,1,22,139,75,5,64,185,75,1,0,52,67,243,255,151,168,10,64,185,9,192,40,139,42,1,22,139,83,5,64,185,62, - 243,255,151,8,192,51,139,179,19,64,249,2,0,0,20,8,0,128,210,136,3,0,180,226,3,20,42,225,3,21,170,224,3,24,170,155,255,255,151,121,42,64,249,51,243,255,151,168,10,64,185,9,192,40,139,42,1,22,139,75,5,64,185,75,1,0,52,45,243,255,151,168,10,64, - 185,9,192,40,139,42,1,22,139,83,5,64,185,40,243,255,151,0,192,51,139,179,19,64,249,2,0,0,20,0,0,128,210,99,32,128,82,226,3,25,170,225,3,24,170,248,220,255,151,224,3,27,170,38,243,255,151,5,0,0,20,181,207,66,169,179,19,0,249,184,239,67,169,183, - 83,66,41,180,27,0,185,192,255,255,23,224,254,255,151,8,48,64,185,31,1,0,113,173,0,0,84,220,254,255,151,8,48,64,185,9,5,0,81,9,48,0,185,159,6,0,49,142,18,87,122,204,1,0,84,226,3,20,42,225,3,21,170,224,3,24,170,110,255,255,151,253,123,197,168, - 251,31,64,249,249,27,64,249,247,99,66,169,245,91,65,169,243,83,196,168,255,35,3,213,192,3,95,214,137,254,255,151,136,254,255,151,0,0,62,212,127,35,3,213,243,83,190,169,245,91,1,169,253,123,190,169,253,3,0,145,244,3,2,170,246,3,0,170,224,3,20, - 170,245,3,1,170,47,255,255,151,243,3,0,42,224,3,22,170,227,67,0,145,226,3,20,170,225,3,21,170,35,242,255,151,226,3,20,170,225,3,21,170,224,3,22,170,103,255,255,151,127,2,0,107,109,1,0,84,226,3,19,42,225,3,20,170,224,67,0,145,73,255,255,151,227, - 3,19,42,226,3,20,170,225,3,21,170,224,3,22,170,72,255,255,151,6,0,0,20,226,3,20,170,225,3,21,170,224,3,22,170,87,255,255,151,243,3,0,42,224,3,19,42,253,123,194,168,245,91,65,169,243,83,194,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243, - 83,188,169,245,91,1,169,247,99,2,169,249,27,0,249,251,31,0,249,253,123,184,169,253,3,0,145,245,3,0,170,181,39,0,249,22,0,128,82,191,127,2,41,191,127,2,169,141,254,255,151,24,20,64,249,184,35,0,249,138,254,255,151,25,16,64,249,185,31,0,249,180, - 42,64,249,180,15,0,249,179,110,68,169,181,162,66,169,168,111,5,169,181,51,0,249,224,3,19,170,78,22,0,148,127,254,255,151,20,16,0,249,125,254,255,151,19,20,0,249,123,254,255,151,8,16,64,249,1,21,64,249,160,195,1,145,213,242,255,151,247,3,0,170, - 183,27,0,249,179,39,64,249,104,46,64,249,200,0,0,180,40,0,128,82,168,23,0,185,111,254,255,151,8,56,64,249,168,19,0,249,3,32,128,82,98,58,64,249,225,3,21,170,160,43,64,249,118,220,255,151,243,3,0,170,179,23,0,249,29,0,0,20,40,0,128,82,177,67, - 0,145,40,254,159,136,97,254,255,151,31,64,0,185,168,23,64,185,180,15,64,249,104,1,0,52,33,0,128,82,224,3,20,170,40,243,255,151,168,19,64,249,3,129,0,145,2,25,64,185,0,5,64,41,137,0,0,208,40,53,70,249,6,0,0,20,131,130,0,145,130,26,64,185,128, - 6,64,41,136,0,0,208,8,53,70,249,0,1,63,214,182,19,64,185,185,227,67,169,187,215,69,169,179,223,66,169,224,3,23,170,187,242,255,151,118,2,0,53,105,4,0,24,136,2,64,185,31,1,9,107,225,1,0,84,136,26,64,185,31,17,0,113,129,1,0,84,136,34,64,185,137, - 3,0,24,8,1,9,75,31,9,0,113,232,0,0,84,128,22,64,249,56,243,255,151,128,0,0,52,33,0,128,82,224,3,20,170,2,243,255,151,51,254,255,151,25,16,0,249,49,254,255,151,24,20,0,249,105,31,64,185,168,2,64,249,42,0,128,146,10,201,41,248,224,3,19,170,253, - 123,200,168,251,31,64,249,249,27,64,249,247,99,66,169,245,91,65,169,243,83,196,168,255,35,3,213,192,3,95,214,99,115,109,224,32,5,147,25,232,3,1,170,225,3,2,170,0,1,31,214,0,0,0,0,232,3,1,170,225,3,2,170,226,3,3,42,0,1,31,214,72,0,0,240,9,193, - 23,145,31,8,0,249,74,0,0,240,72,129,23,145,8,36,0,169,192,3,95,214,0,0,0,0,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,72,0,0,240,8,225,0,145,16,228,0,79,243,3,0,170,233,3,1,170,104,2,0,249,97,34,0,145,32,33,0,145,112,130,128,60,75, - 243,255,151,72,0,0,240,8,129,23,145,104,2,0,249,224,3,19,170,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95,214,127,35,3,213,243,83,191,169,253,123,191,169,253,3,0,145,11,0,64,249,243,3,2,170,127,2,0,185,45,5,0,24,104,1,64,185,31,1,13,107, - 33,4,0,84,104,25,64,185,172,4,0,24,52,0,128,82,31,17,0,113,97,1,0,84,104,33,64,185,8,1,12,75,31,9,0,113,232,0,0,84,41,20,64,249,104,21,64,249,31,1,9,235,233,3,31,42,138,2,137,26,106,2,0,185,104,1,64,185,31,1,13,107,225,1,0,84,104,25,64,185,31, - 17,0,113,129,1,0,84,104,33,64,185,8,1,12,75,31,9,0,113,8,1,0,84,104,25,64,249,200,0,0,181,212,253,255,151,20,64,0,185,32,0,128,82,116,2,0,185,2,0,0,20,0,0,128,82,253,123,193,168,243,83,193,168,255,35,3,213,192,3,95,214,99,115,109,224,32,5,147, - 25,127,35,3,213,243,83,187,169,245,91,1,169,247,99,2,169,249,107,3,169,251,35,0,249,253,123,190,169,253,3,0,145,250,3,0,170,247,3,1,170,119,6,0,180,232,2,64,185,25,0,128,82,22,0,128,82,31,1,0,113,173,4,0,84,2,242,255,151,72,27,64,249,9,13,64, - 185,10,192,41,139,83,17,0,145,253,241,255,151,72,27,64,249,9,13,64,185,24,200,105,184,31,3,0,113,205,2,0,84,219,126,64,147,246,241,255,151,116,70,64,184,245,3,0,170,243,11,0,249,83,27,64,249,221,241,255,151,232,6,64,185,161,194,52,139,226,3, - 19,170,9,192,40,139,136,2,128,210,96,39,8,155,26,0,0,148,192,0,0,53,24,7,0,81,243,11,64,249,31,3,0,113,236,253,255,84,2,0,0,20,57,0,128,82,232,2,64,185,214,6,0,17,223,2,8,107,171,251,255,84,224,3,25,42,253,123,194,168,251,35,64,249,249,107,67, - 169,247,99,66,169,245,91,65,169,243,83,197,168,255,35,3,213,192,3,95,214,75,253,255,151,0,0,62,212,0,0,0,0,231,28,0,83,1,1,0,20,127,35,3,213,243,83,190,169,245,91,1,169,253,123,191,169,253,3,0,145,243,3,0,170,104,6,64,185,245,3,1,170,246,3,2, - 170,104,7,0,52,244,3,8,42,177,241,255,151,8,192,52,139,232,6,0,180,180,0,0,52,116,6,64,185,172,241,255,151,8,192,52,139,3,0,0,20,8,0,128,210,20,0,128,82,8,65,192,57,200,5,0,52,104,2,64,185,104,0,56,54,169,2,64,185,73,5,32,55,180,0,0,52,160,241, - 255,151,104,6,64,185,20,192,40,139,2,0,0,20,20,0,128,210,175,241,255,151,168,6,64,185,9,192,40,139,159,2,9,235,32,2,0,84,104,6,64,185,168,0,0,52,148,241,255,151,104,6,64,185,20,192,40,139,2,0,0,20,20,0,128,210,163,241,255,151,168,6,64,185,9, - 192,40,139,128,66,0,145,33,65,0,145,170,3,0,148,96,0,0,52,0,0,128,82,16,0,0,20,168,2,64,185,104,0,8,54,105,2,64,185,105,255,31,54,202,2,64,185,106,0,0,54,104,2,64,185,232,254,7,54,106,0,16,54,104,2,64,185,136,254,23,54,106,0,8,54,104,2,64,185, - 40,254,15,54,32,0,128,82,253,123,193,168,245,91,65,169,243,83,194,168,255,35,3,213,192,3,95,214,127,35,3,213,243,83,189,169,245,91,1,169,247,99,2,169,253,123,190,169,253,3,0,145,247,3,0,170,244,3,1,170,243,3,2,170,245,3,3,170,24,0,128,82,104, - 6,64,185,168,0,0,52,246,3,8,42,100,241,255,151,8,192,54,139,3,0,0,20,8,0,128,210,22,0,128,82,104,11,0,180,182,0,0,52,93,241,255,151,104,6,64,185,9,192,40,139,2,0,0,20,9,0,128,210,40,65,192,57,104,10,0,52,106,10,64,185,106,0,0,53,104,2,64,185, - 232,9,248,54,105,2,64,185,105,0,248,55,136,2,64,249,20,193,42,139,201,1,56,54,168,2,64,185,136,1,32,54,170,0,0,176,74,253,69,249,42,1,0,180,239,3,10,170,145,0,0,208,49,82,66,249,32,2,63,214,224,1,63,214,192,8,0,180,180,8,0,180,5,0,0,20,201,0, - 24,54,224,22,64,249,64,8,0,180,52,8,0,180,128,2,0,249,14,0,0,20,168,2,64,185,8,2,0,54,225,22,64,249,129,7,0,180,116,7,0,180,162,22,128,185,224,3,20,170,211,217,255,151,168,22,64,185,31,33,0,113,65,5,0,84,128,2,64,249,0,5,0,180,161,34,0,145,10, - 242,255,151,128,2,0,249,36,0,0,20,168,26,64,185,168,0,0,52,243,3,8,42,58,241,255,151,9,192,51,139,3,0,0,20,9,0,128,210,19,0,128,82,232,22,64,249,137,1,0,181,168,4,0,180,148,4,0,180,179,22,128,185,161,34,0,145,224,3,8,170,248,241,255,151,225, - 3,0,170,226,3,19,170,224,3,20,170,182,217,255,151,15,0,0,20,104,3,0,180,84,3,0,180,179,0,0,52,37,241,255,151,168,26,64,185,9,192,40,139,2,0,0,20,9,0,128,210,105,2,0,180,168,2,64,185,31,1,30,114,41,0,128,82,56,5,137,26,184,19,0,185,224,3,24,42, - 2,0,0,20,0,0,128,82,253,123,194,168,247,99,66,169,245,91,65,169,243,83,195,168,255,35,3,213,192,3,95,214,135,252,255,151,134,252,255,151,133,252,255,151,132,252,255,151,131,252,255,151,130,252,255,151,0,0,62,212,127,35,3,213,243,83,190,169,245, - 11,0,249,253,123,191,169,253,3,0,145,245,3,0,170,243,3,3,170,72,0,64,185,104,0,248,54,244,3,1,170,4,0,0,20,73,8,64,185,40,0,64,249,20,193,41,139,227,3,19,170,224,3,21,170,116,255,255,151,31,4,0,113,96,2,0,84,31,8,0,113,225,3,0,84,97,34,0,145, - 160,22,64,249,189,241,255,151,245,3,0,170,104,26,64,185,168,0,0,52,239,240,255,151,104,26,64,185,1,192,40,139,2,0,0,20,1,0,128,210,35,0,128,82,226,3,21,170,224,3,20,170,129,254,255,151,15,0,0,20,97,34,0,145,160,22,64,249,173,241,255,151,245, - 3,0,170,104,26,64,185,168,0,0,52,223,240,255,151,104,26,64,185,1,192,40,139,2,0,0,20,1,0,128,210,226,3,21,170,224,3,20,170,110,254,255,151,253,123,193,168,245,11,64,249,243,83,194,168,255,35,3,213,192,3,95,214,72,252,255,151,0,0,62,212,127,35, - 3,213,243,83,187,169,245,91,1,169,247,99,2,169,249,107,3,169,251,35,0,249,253,123,191,169,253,3,0,145,248,3,2,170,244,3,0,170,224,3,24,170,246,3,1,170,245,3,3,170,243,3,4,170,247,3,5,42,249,3,6,170,250,28,0,83,67,20,0,148,116,252,255,151,234, - 17,0,24,8,64,64,185,203,17,0,24,204,17,0,24,219,17,0,24,168,2,0,53,137,2,64,185,63,1,10,107,64,2,0,84,63,1,11,107,1,1,0,84,136,26,64,185,31,61,0,113,225,0,0,84,136,50,64,249,202,15,0,88,31,1,10,235,32,1,0,84,63,1,12,107,224,0,0,84,104,2,64,185, - 9,113,0,18,63,1,27,107,99,0,0,84,104,38,64,185,8,13,0,55,138,6,64,185,200,12,128,82,95,1,8,106,224,4,0,84,105,6,64,185,73,12,0,52,55,12,0,53,202,3,40,54,136,2,64,185,31,1,12,107,1,2,0,84,162,18,64,249,225,3,21,170,224,3,19,170,191,252,255,151, - 31,4,0,49,11,12,0,84,104,6,64,185,31,0,8,107,170,11,0,84,227,3,0,42,224,3,22,170,226,3,19,170,225,3,21,170,5,253,255,151,78,0,0,20,31,1,11,107,65,1,0,84,131,30,64,249,127,4,0,49,100,160,73,122,42,10,0,84,128,22,64,249,226,3,19,170,225,3,21,170, - 250,252,255,151,67,0,0,20,226,3,19,170,225,3,21,170,224,3,22,170,127,239,255,151,62,0,0,20,104,14,64,185,104,2,0,53,104,2,64,185,138,9,0,24,9,113,0,18,63,1,10,107,227,0,0,84,104,34,64,185,168,0,0,52,92,240,255,151,104,34,64,185,9,192,40,139, - 9,1,0,181,104,2,64,185,9,113,0,18,63,1,27,107,163,5,0,84,104,38,64,185,9,9,2,83,73,5,0,52,136,2,64,185,201,6,0,24,31,1,9,107,161,3,0,84,136,26,64,185,31,13,0,113,67,3,0,84,136,34,64,185,31,1,27,107,233,2,0,84,136,26,64,249,9,9,64,185,137,2,0, - 52,88,240,255,151,136,26,64,249,9,9,64,185,10,192,41,139,234,1,0,180,231,3,26,42,230,3,25,170,229,3,23,42,228,3,19,170,227,3,21,170,226,3,24,170,225,3,22,170,224,3,20,170,239,3,10,170,145,0,0,176,49,82,66,249,32,2,63,214,224,1,63,214,11,0,0, - 20,231,3,25,170,230,3,23,42,229,3,26,42,228,3,19,170,227,3,21,170,226,3,24,170,225,3,22,170,224,3,20,170,21,0,0,148,32,0,128,82,253,123,193,168,251,35,64,249,249,107,67,169,247,99,66,169,245,91,65,169,243,83,197,168,255,35,3,213,192,3,95,214, - 169,251,255,151,0,0,62,212,31,32,3,213,32,5,147,25,0,0,0,0,99,115,109,224,41,0,0,128,38,0,0,128,34,5,147,25,33,5,147,25,0,0,0,0,127,35,3,213,253,123,186,169,243,83,1,169,245,91,2,169,247,99,3,169,249,107,4,169,251,43,0,249,253,3,0,145,144,216, - 255,151,255,131,3,209,248,3,1,170,255,131,0,57,247,3,3,170,248,159,4,169,243,3,4,170,246,3,2,170,244,3,0,170,246,23,0,249,186,28,0,83,249,3,6,42,250,135,0,57,226,3,19,170,249,51,0,185,225,3,23,170,224,3,24,170,255,252,255,151,245,3,0,42,245, - 55,0,185,191,6,0,49,139,35,0,84,104,6,64,185,191,2,8,107,42,35,0,84,136,2,64,185,73,37,0,24,91,37,0,24,31,1,9,107,1,10,0,84,136,26,64,185,31,17,0,113,161,9,0,84,136,34,64,185,8,1,27,75,31,9,0,113,40,9,0,84,136,26,64,249,232,8,0,181,175,251,255, - 151,8,16,64,249,200,31,0,180,172,251,255,151,20,16,64,249,170,251,255,151,40,0,128,82,22,20,64,249,232,131,0,57,128,30,64,249,246,23,0,249,246,239,255,151,136,2,64,185,9,34,0,24,31,1,9,107,65,1,0,84,136,26,64,185,31,17,0,113,225,0,0,84,136,34, - 64,185,8,1,27,75,31,9,0,113,104,0,0,84,136,26,64,249,72,30,0,180,150,251,255,151,8,28,64,249,104,5,0,180,147,251,255,151,22,28,64,249,145,251,255,151,225,3,22,170,31,28,0,249,224,3,20,170,197,253,255,151,8,28,0,83,40,4,0,53,200,2,64,185,21,0, - 128,82,31,1,0,113,109,28,0,84,183,0,0,144,152,2,128,210,168,126,64,147,19,125,24,155,184,239,255,151,200,6,64,185,9,192,40,139,42,1,19,139,75,5,64,185,43,1,0,52,178,239,255,151,200,6,64,185,9,192,40,139,42,1,19,139,83,5,64,185,173,239,255,151, - 8,192,51,139,2,0,0,20,8,0,128,210,225,2,42,145,0,33,0,145,1,241,255,151,160,25,0,52,200,2,64,185,181,6,0,17,191,2,8,107,10,25,0,84,231,255,255,23,246,23,64,249,232,6,64,249,243,35,9,169,137,2,64,185,136,26,0,24,63,1,8,107,193,20,0,84,136,26, - 64,185,31,17,0,113,97,20,0,84,136,34,64,185,8,1,27,75,31,9,0,113,232,19,0,84,104,14,64,185,8,13,0,52,229,3,25,42,228,3,19,170,227,3,23,170,226,3,21,42,225,67,2,145,224,131,2,145,50,239,255,151,240,43,192,61,236,187,64,185,8,62,20,14,240,27,128, - 61,31,1,12,107,98,11,0,84,237,83,64,249,142,2,128,210,232,51,64,249,248,107,64,185,237,35,0,249,8,1,64,249,9,127,64,211,10,17,64,185,40,125,14,155,11,193,42,139,170,5,64,249,112,105,234,60,105,1,10,139,42,17,64,185,8,2,38,30,240,31,128,61,234, - 131,0,185,31,1,21,107,76,8,0,84,232,119,64,185,191,2,8,107,236,7,0,84,232,6,64,249,21,0,128,82,251,127,64,185,9,193,42,139,233,47,0,249,27,7,0,52,168,126,64,211,9,37,14,155,48,1,192,61,240,51,128,61,40,17,64,185,232,211,0,185,117,239,255,151, - 136,26,64,249,9,13,64,185,10,192,41,139,75,17,0,145,235,31,0,249,111,239,255,151,136,26,64,249,9,13,64,185,22,200,105,184,12,0,0,20,106,239,255,151,232,31,64,249,249,3,0,170,130,26,64,249,224,3,3,145,26,69,64,184,33,195,58,139,232,31,0,249,146, - 253,255,151,64,1,0,53,214,6,0,81,223,2,0,113,140,254,255,84,181,6,0,17,191,2,27,107,142,2,128,210,128,2,0,84,233,47,64,249,221,255,255,23,232,135,64,57,38,195,58,139,231,195,1,145,226,23,64,249,229,3,3,145,228,3,19,170,227,3,23,170,232,99,0, - 57,232,131,64,57,224,3,20,170,232,67,0,57,225,163,68,169,232,7,0,249,232,51,64,185,232,3,0,185,112,0,0,148,142,2,128,210,237,35,64,249,236,187,64,185,245,55,64,185,24,7,0,17,232,51,64,249,31,3,12,107,195,245,255,84,248,39,64,249,250,135,64,57, - 104,2,64,185,74,12,0,24,9,113,0,18,63,1,10,107,163,7,0,84,104,34,64,185,232,0,0,52,34,239,255,151,104,34,64,185,9,192,40,139,105,0,0,180,117,146,0,145,10,0,0,20,104,38,64,185,9,9,2,83,73,6,0,52,225,3,19,170,224,3,23,170,117,146,0,145,28,238, - 255,151,8,28,0,83,136,5,0,53,168,2,64,185,9,9,2,83,41,8,0,53,104,34,64,185,168,0,0,52,14,239,255,151,104,34,64,185,1,192,40,139,2,0,0,20,1,0,128,210,224,3,20,170,10,253,255,151,8,28,0,83,200,3,0,53,227,99,1,145,226,3,19,170,225,3,23,170,224, - 3,24,170,55,238,255,151,226,23,64,249,7,0,128,18,227,3,0,170,250,67,0,57,6,0,128,18,255,95,0,169,229,3,19,170,4,0,128,210,225,3,20,170,224,3,24,170,112,238,255,151,13,0,0,20,104,14,64,185,104,1,0,52,250,2,0,53,231,43,64,249,230,3,25,42,229,3, - 21,42,228,3,19,170,227,3,23,170,226,3,22,170,225,3,24,170,224,3,20,170,91,0,0,148,178,250,255,151,8,28,64,249,104,1,0,181,255,131,3,145,112,215,255,151,251,43,64,249,249,107,68,169,247,99,67,169,245,91,66,169,243,83,65,169,253,123,198,168,255, - 35,3,213,192,3,95,214,101,250,255,151,208,249,255,151,33,0,128,82,224,3,20,170,111,239,255,151,224,3,3,145,135,252,255,151,136,0,0,240,1,1,14,145,224,3,3,145,229,236,255,151,154,250,255,151,20,16,0,249,152,250,255,151,232,23,64,249,8,20,0,249, - 193,249,255,151,0,0,62,212,31,32,3,213,99,115,109,224,32,5,147,25,33,5,147,25,0,0,0,0,127,35,3,213,243,83,187,169,245,91,1,169,247,99,2,169,249,107,3,169,251,35,0,249,253,123,190,169,253,3,0,145,255,131,0,209,248,3,1,170,226,27,0,249,249,3,3, - 170,250,3,4,170,246,3,0,170,226,3,26,170,225,3,25,170,224,3,24,170,227,227,0,145,245,3,5,170,243,3,6,170,251,3,7,170,229,237,255,151,247,3,0,170,211,0,0,180,227,3,19,170,226,3,21,170,225,3,23,170,224,3,22,170,178,253,255,151,116,11,64,185,115, - 3,64,185,165,238,255,151,231,3,20,42,226,27,64,249,230,3,19,42,245,103,0,169,229,3,26,170,169,14,64,185,227,3,23,170,232,163,66,57,225,3,22,170,4,192,41,139,224,3,24,170,232,67,0,57,18,238,255,151,255,131,0,145,253,123,194,168,251,35,64,249, - 249,107,67,169,247,99,66,169,245,91,65,169,243,83,197,168,255,35,3,213,192,3,95,214,127,35,3,213,243,83,187,169,245,91,1,169,247,99,2,169,249,107,3,169,251,35,0,249,253,123,183,169,253,3,0,145,255,131,0,209,249,3,0,170,40,3,64,185,250,3,1,170, - 251,3,2,170,250,31,0,249,233,11,1,50,251,51,0,249,247,3,3,170,31,1,9,107,245,3,4,170,248,3,5,42,244,3,6,42,246,3,7,170,96,14,0,84,65,250,255,151,8,8,64,249,104,3,0,180,136,0,0,176,8,85,69,249,0,0,128,210,0,1,63,214,243,3,0,170,57,250,255,151, - 8,8,64,249,31,1,19,235,64,2,0,84,40,3,64,185,9,14,0,24,31,1,9,107,192,1,0,84,201,13,0,24,31,1,9,107,96,1,0,84,231,3,24,42,230,3,22,170,229,3,20,42,228,3,21,170,227,3,23,170,226,3,27,170,225,3,26,170,224,3,25,170,214,238,255,151,192,10,0,53,232, - 6,64,249,245,35,9,169,169,14,64,185,105,11,0,52,229,3,20,42,228,3,21,170,227,3,23,170,226,3,24,42,225,67,2,145,224,195,1,145,248,237,255,151,240,31,192,61,236,139,64,185,8,62,20,14,240,19,128,61,31,1,12,107,162,8,0,84,250,59,64,249,141,2,128, - 210,251,35,64,249,246,75,64,185,104,3,64,249,201,126,64,211,10,17,64,185,40,125,13,155,11,193,42,139,74,7,64,249,112,105,234,60,105,1,10,139,42,17,64,185,8,2,38,30,240,19,128,61,232,51,0,185,31,1,24,107,236,5,0,84,232,71,64,185,31,3,8,107,140, - 5,0,84,232,79,64,185,9,125,13,155,232,6,64,249,42,193,42,139,73,1,8,139,52,81,0,209,139,6,64,185,203,1,0,52,243,3,11,42,43,238,255,151,8,192,51,139,40,1,0,180,179,0,0,52,39,238,255,151,136,6,64,185,9,192,40,139,2,0,0,20,9,0,128,210,40,65,192, - 57,232,2,0,53,236,139,64,185,136,2,64,185,168,2,48,55,224,31,64,249,227,131,2,145,226,3,21,170,225,3,23,170,79,237,255,151,243,3,0,170,23,238,255,151,136,14,64,185,231,75,64,185,229,3,21,170,255,67,0,57,230,51,64,185,227,3,19,170,244,95,0,169, - 226,51,64,249,225,3,25,170,4,192,40,139,224,31,64,249,133,237,255,151,236,139,64,185,214,6,0,17,223,2,12,107,141,2,128,210,35,248,255,84,255,131,0,145,253,123,201,168,251,35,64,249,249,107,67,169,247,99,66,169,245,91,65,169,243,83,197,168,255, - 35,3,213,192,3,95,214,134,249,255,151,0,0,62,212,77,79,67,224,82,67,67,224,72,0,128,185,9,245,126,146,40,105,96,248,41,1,8,203,42,1,0,139,64,33,0,209,246,215,255,23,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,104,28,64,249,9,1,128,185,42, - 245,126,146,72,105,97,248,73,1,8,203,42,1,1,139,64,33,0,209,234,215,255,151,32,0,128,82,253,123,193,168,255,35,3,213,192,3,95,214,0,0,0,0,41,0,64,57,8,0,64,57,10,1,9,75,10,1,0,53,11,0,1,203,40,29,0,19,168,0,0,52,41,28,64,56,104,105,97,56,10, - 1,9,75,106,255,255,52,232,3,10,75,9,125,31,83,32,125,74,75,192,3,95,214,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,31,0,0,241,36,24,64,250,105,0,0,84,66,1,0,181,31,0,0,57,8,11,0,148,200,2,128,82,8,0,0,185,31,8,0,148,192,2,128,82,253,123, - 193,168,255,35,3,213,192,3,95,214,233,3,0,170,74,0,0,203,72,105,233,56,40,21,0,56,104,1,0,52,33,4,0,209,129,255,255,181,1,1,0,181,31,0,0,57,247,10,0,148,72,4,128,82,8,0,0,185,14,8,0,148,64,4,128,82,239,255,255,23,0,0,128,82,237,255,255,23,0, - 0,0,0,127,35,3,213,243,83,189,169,245,91,1,169,247,19,0,249,253,123,191,169,253,3,0,145,168,0,0,144,20,161,57,145,19,0,128,82,181,0,0,144,22,5,128,210,151,0,0,176,104,126,64,211,0,81,22,155,232,2,70,249,2,0,128,82,1,244,129,82,0,1,63,214,0,1, - 0,52,168,146,78,185,115,6,0,17,9,5,0,17,169,146,14,185,179,254,255,52,32,0,128,82,3,0,0,20,8,0,0,148,0,0,128,82,253,123,193,168,247,19,64,249,245,91,65,169,243,83,195,168,255,35,3,213,192,3,95,214,127,35,3,213,243,83,189,169,245,91,1,169,247, - 19,0,249,253,123,191,169,253,3,0,145,181,0,0,144,179,146,78,185,179,1,0,52,168,0,0,144,20,161,57,145,22,5,128,210,151,0,0,176,115,6,0,81,233,82,69,249,96,82,22,155,32,1,63,214,168,146,78,185,9,5,0,81,169,146,14,185,51,255,255,53,32,0,128,82, - 253,123,193,168,247,19,64,249,245,91,65,169,243,83,195,168,255,35,3,213,192,3,95,214,168,0,0,144,10,9,64,249,169,0,0,144,40,65,61,145,9,129,3,145,80,13,8,78,16,65,129,172,31,1,9,235,193,255,255,84,16,1,128,61,32,0,128,82,10,9,0,249,192,3,95, - 214,0,0,0,0,0,0,0,0,0,0,0,0,127,35,3,213,243,83,190,169,245,11,0,249,253,123,191,169,253,3,0,145,8,28,0,83,232,1,0,53,168,0,0,144,19,129,58,145,137,0,0,176,53,33,44,145,116,162,2,145,96,134,64,248,192,0,0,180,31,4,0,177,96,0,0,84,168,254,223, - 200,0,1,63,214,127,130,31,248,127,2,20,235,1,255,255,84,32,0,128,82,253,123,193,168,245,11,64,249,243,83,194,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,72,0,0,240,2,161,38,145,72,0,0,240,1,193,38,145,67,16, - 0,145,0,0,128,82,183,0,0,148,224,0,0,180,239,3,0,170,145,0,0,176,49,82,66,249,32,2,63,214,224,1,63,214,2,0,0,20,32,0,128,82,253,123,193,168,255,35,3,213,192,3,95,214,0,0,0,0,136,0,0,176,8,97,43,145,9,253,223,200,32,1,31,214,136,0,0,176,8,129, - 43,145,9,253,223,200,32,1,31,214,136,0,0,176,8,161,43,145,9,253,223,200,32,1,31,214,136,0,0,176,8,193,43,145,9,253,223,200,32,1,31,214,127,35,3,213,243,83,190,169,245,11,0,249,253,123,191,169,253,3,0,145,245,3,2,42,72,0,0,240,2,1,39,145,243, - 3,0,170,244,3,1,42,72,0,0,240,1,33,39,145,67,32,0,145,224,1,128,82,140,0,0,148,225,3,20,42,232,3,0,170,224,3,19,170,8,1,0,180,226,3,21,42,239,3,8,170,145,0,0,176,49,82,66,249,32,2,63,214,224,1,63,214,5,0,0,20,136,0,0,176,8,225,47,145,9,253,223, - 200,32,1,63,214,253,123,193,168,245,11,64,249,243,83,194,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,188,169,245,91,1,169,247,99,2,169,249,107,3,169,253,123,191,169,253,3,0,145,255,67,0,209,245,3,2,170,72,0,0,240,2,161,39,145,243, - 3,0,170,244,3,1,42,72,0,0,240,1,193,39,145,246,3,3,42,67,32,0,145,32,2,128,82,247,3,4,170,248,3,5,42,249,3,6,170,250,3,7,170,96,0,0,148,233,3,0,170,224,3,19,170,9,2,0,180,232,51,64,249,231,3,26,170,230,3,25,170,229,3,24,42,228,3,23,170,227,3, - 22,42,232,3,0,249,226,3,21,170,225,3,20,42,239,3,9,170,145,0,0,176,49,82,66,249,32,2,63,214,224,1,63,214,12,0,0,20,1,0,128,82,18,0,0,148,136,0,0,176,8,129,48,145,9,253,223,200,229,3,24,42,228,3,23,170,227,3,22,42,226,3,21,170,225,3,20,42,32, - 1,63,214,255,67,0,145,253,123,193,168,249,107,67,169,247,99,66,169,245,91,65,169,243,83,196,168,255,35,3,213,192,3,95,214,127,35,3,213,243,83,191,169,253,123,191,169,253,3,0,145,72,0,0,240,2,1,40,145,243,3,0,170,244,3,1,42,72,0,0,240,1,33,40, - 145,67,32,0,145,96,2,128,82,46,0,0,148,232,3,0,170,224,3,19,170,8,1,0,180,225,3,20,42,239,3,8,170,145,0,0,176,49,82,66,249,32,2,63,214,224,1,63,214,2,0,0,20,99,16,0,148,253,123,193,168,243,83,193,168,255,35,3,213,192,3,95,214,127,35,3,213,243, - 15,31,248,253,123,191,169,253,3,0,145,72,0,0,240,2,113,40,145,72,0,0,240,1,129,40,145,243,3,0,170,67,16,0,145,32,3,128,82,19,0,0,148,232,3,0,170,40,1,0,180,225,3,19,170,160,0,128,146,239,3,8,170,145,0,0,176,49,82,66,249,32,2,63,214,224,1,63, - 214,2,0,0,20,192,0,0,24,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95,214,31,32,3,213,37,2,0,192,0,0,0,0,127,35,3,213,243,83,187,169,245,91,1,169,247,99,2,169,249,107,3,169,251,35,0,249,253,123,189,169,253,3,0,145,169,0,0,144,54,129,58, - 145,225,19,0,249,218,194,2,145,249,3,0,42,245,3,2,170,73,91,121,248,248,3,3,170,191,59,3,213,183,0,0,144,235,10,64,249,106,21,0,18,105,1,9,202,32,45,202,154,31,4,0,177,96,8,0,84,96,8,0,181,191,2,24,235,0,7,0,84,72,0,0,240,8,129,15,145,137,0, - 0,176,41,225,48,145,232,39,1,169,138,0,0,176,91,225,45,145,180,70,64,184,211,90,116,248,191,59,3,213,147,0,0,180,127,6,0,177,161,8,0,84,38,0,0,20,23,89,116,248,2,0,129,82,40,253,223,200,1,0,128,210,224,3,23,170,0,1,63,214,243,3,0,170,115,6,0, - 181,104,255,223,200,0,1,63,214,31,92,1,113,193,2,0,84,72,0,0,240,1,33,38,145,226,0,128,210,224,3,23,170,245,15,0,148,0,2,0,52,72,0,0,240,1,97,38,145,226,0,128,210,224,3,23,170,239,15,0,148,64,1,0,52,137,0,0,144,40,225,48,145,8,253,223,200,2, - 0,128,82,1,0,128,210,224,3,23,170,0,1,63,214,243,3,0,170,83,3,0,181,192,78,52,139,1,0,128,146,0,214,255,151,232,39,65,169,191,2,24,235,97,250,255,84,136,0,0,240,11,9,64,249,10,8,128,82,64,79,57,139,105,21,0,18,74,1,9,75,8,0,128,146,8,45,202, - 154,1,1,11,202,243,213,255,151,0,0,128,210,253,123,195,168,251,35,64,249,249,107,67,169,247,99,66,169,245,91,65,169,243,83,197,168,255,35,3,213,192,3,95,214,192,78,52,139,225,3,19,170,231,213,255,151,192,0,0,180,136,0,0,144,8,33,44,145,9,253, - 223,200,224,3,19,170,32,1,63,214,136,0,0,144,8,129,46,145,225,19,64,249,9,253,223,200,224,3,19,170,32,1,63,214,243,3,0,170,179,251,255,180,136,0,0,240,10,9,64,249,11,8,128,82,64,79,57,139,73,21,0,18,105,1,9,75,104,46,201,154,1,1,10,202,208,213, - 255,151,224,3,19,170,221,255,255,23,0,0,0,0,127,35,3,213,243,83,190,169,245,91,1,169,253,123,191,169,253,3,0,145,168,0,0,144,20,65,1,145,19,0,128,82,181,0,0,144,22,5,128,210,104,126,64,211,0,81,22,155,2,0,128,82,1,244,129,82,216,254,255,151, - 32,1,0,52,168,130,66,185,115,6,0,17,127,58,0,113,9,5,0,17,169,130,2,185,163,254,255,84,32,0,128,82,4,0,0,20,0,0,128,82,7,0,0,148,0,0,128,82,253,123,193,168,245,91,65,169,243,83,194,168,255,35,3,213,192,3,95,214,127,35,3,213,243,83,189,169,245, - 91,1,169,247,19,0,249,253,123,191,169,253,3,0,145,182,0,0,144,211,130,66,185,211,1,0,52,168,0,0,144,20,65,1,145,136,0,0,144,21,129,42,145,23,5,128,210,115,6,0,81,169,254,223,200,96,82,23,155,32,1,63,214,200,130,66,185,9,5,0,81,201,130,2,185, - 51,255,255,53,32,0,128,82,253,123,193,168,247,19,64,249,245,91,65,169,243,83,195,168,255,35,3,213,192,3,95,214,0,0,0,0,168,0,0,144,8,65,1,145,9,124,64,147,10,5,128,210,32,33,10,155,138,0,0,144,73,193,42,145,40,253,223,200,0,1,31,214,0,0,0,0, - 168,0,0,144,8,65,1,145,9,124,64,147,10,5,128,210,32,33,10,155,138,0,0,144,73,161,48,145,40,253,223,200,0,1,31,214,0,0,0,0,0,0,0,0,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,136,0,0,144,8,161,46,145,9,253,223,200,32,1,63,214,168,0,0,144, - 0,69,1,249,31,0,0,241,224,7,159,26,253,123,193,168,255,35,3,213,192,3,95,214,0,0,0,0,0,0,0,0,168,0,0,144,31,69,1,249,32,0,128,82,192,3,95,214,127,35,3,213,253,123,191,169,253,3,0,145,8,0,0,144,0,129,28,145,105,254,255,151,136,0,0,240,0,33,0, - 185,31,4,0,49,97,0,0,84,0,0,128,82,7,0,0,20,138,0,0,148,128,0,0,181,0,0,128,82,9,0,0,148,250,255,255,23,32,0,128,82,253,123,193,168,255,35,3,213,192,3,95,214,0,0,0,0,0,0,0,0,0,0,0,0,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,147, - 0,0,240,96,34,64,185,31,4,0,49,128,0,0,84,82,254,255,151,8,0,128,18,104,34,0,185,32,0,128,82,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95,214,127,35,3,213,243,83,190,169,245,11,0,249,253,123,191,169,253,3,0,145,136,0,0,144,8,225,45,145, - 9,253,223,200,32,1,63,214,243,3,0,42,149,0,0,240,160,34,64,185,31,4,0,49,224,0,0,84,64,254,255,151,128,0,0,180,31,4,0,177,244,3,128,154,30,0,0,20,160,34,64,185,1,0,128,146,61,254,255,151,96,0,0,53,20,0,128,210,24,0,0,20,1,121,128,210,32,0,128, - 210,243,8,0,148,244,3,0,170,160,34,64,185,212,0,0,181,1,0,128,210,50,254,255,151,0,0,128,210,72,5,0,148,244,255,255,23,225,3,20,170,45,254,255,151,192,0,0,53,160,34,64,185,1,0,128,210,41,254,255,151,224,3,20,170,247,255,255,23,224,3,20,170,243, - 0,0,148,0,0,128,210,59,5,0,148,136,0,0,144,8,97,50,145,9,253,223,200,224,3,19,42,32,1,63,214,244,0,0,180,224,3,20,170,253,123,193,168,245,11,64,249,243,83,194,168,255,35,3,213,192,3,95,214,194,246,255,151,0,0,62,212,127,35,3,213,243,83,191,169, - 253,123,191,169,253,3,0,145,148,0,0,240,128,34,64,185,31,4,0,49,0,1,0,84,8,254,255,151,243,3,0,170,147,0,0,180,127,6,0,177,64,4,0,84,28,0,0,20,128,34,64,185,1,0,128,146,4,254,255,151,160,3,0,52,1,121,128,210,32,0,128,210,188,8,0,148,243,3,0, - 170,128,34,64,185,211,0,0,181,1,0,128,210,251,253,255,151,0,0,128,210,17,5,0,148,18,0,0,20,225,3,19,170,246,253,255,151,192,0,0,53,128,34,64,185,1,0,128,210,242,253,255,151,224,3,19,170,247,255,255,23,224,3,19,170,188,0,0,148,0,0,128,210,4,5, - 0,148,224,3,19,170,253,123,193,168,243,83,193,168,255,35,3,213,192,3,95,214,146,246,255,151,0,0,62,212,127,35,3,213,243,83,190,169,245,11,0,249,253,123,191,169,253,3,0,145,136,0,0,144,8,225,45,145,9,253,223,200,32,1,63,214,243,3,0,42,149,0,0, - 240,160,34,64,185,31,4,0,49,224,0,0,84,210,253,255,151,128,0,0,180,31,4,0,177,244,3,128,154,30,0,0,20,160,34,64,185,1,0,128,146,207,253,255,151,96,0,0,53,20,0,128,210,24,0,0,20,1,121,128,210,32,0,128,210,133,8,0,148,244,3,0,170,160,34,64,185, - 212,0,0,181,1,0,128,210,196,253,255,151,0,0,128,210,218,4,0,148,244,255,255,23,225,3,20,170,191,253,255,151,192,0,0,53,160,34,64,185,1,0,128,210,187,253,255,151,224,3,20,170,247,255,255,23,224,3,20,170,133,0,0,148,0,0,128,210,205,4,0,148,136, - 0,0,144,8,97,50,145,9,253,223,200,224,3,19,42,32,1,63,214,224,3,20,170,253,123,193,168,245,11,64,249,243,83,194,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,191,169,253,123,191,169,253,3,0,145,148,0,0,240,128,34,64,185,31,4,0,49, - 96,1,0,84,156,253,255,151,243,3,0,170,19,1,0,180,128,34,64,185,1,0,128,210,155,253,255,151,224,3,19,170,153,0,0,148,224,3,19,170,175,4,0,148,253,123,193,168,243,83,193,168,255,35,3,213,192,3,95,214,127,35,3,213,243,83,190,169,245,11,0,249,253, - 123,191,169,253,3,0,145,149,0,0,240,160,34,64,185,244,3,1,170,31,4,0,49,160,1,0,84,132,253,255,151,243,3,0,170,51,1,0,180,127,6,0,177,65,4,0,84,0,0,128,210,253,123,193,168,245,11,64,249,243,83,194,168,255,35,3,213,192,3,95,214,160,34,64,185, - 1,0,128,146,123,253,255,151,224,254,255,52,1,121,128,210,32,0,128,210,51,8,0,148,243,3,0,170,160,34,64,185,211,0,0,181,1,0,128,210,114,253,255,151,0,0,128,210,136,4,0,148,236,255,255,23,225,3,19,170,109,253,255,151,192,0,0,53,160,34,64,185,1, - 0,128,210,105,253,255,151,224,3,19,170,247,255,255,23,224,3,19,170,51,0,0,148,0,0,128,210,123,4,0,148,8,121,128,210,128,78,8,155,222,255,255,23,0,0,0,0,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,243,3,0,170,147,0,0,180,88,0,0,148, - 224,3,19,170,110,4,0,148,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,191,169,253,123,191,169,253,3,0,145,244,3,0,170,128,74,64,249,243,3,1,170,192,1,0,180,136,14,0,148,168,0,0,144,8,141,67,249,128,74,64, - 249,31,0,8,235,0,1,0,84,136,0,0,240,8,1,22,145,31,0,8,235,128,0,0,84,8,16,64,185,72,0,0,53,176,14,0,148,147,74,0,249,115,0,0,180,224,3,19,170,68,14,0,148,253,123,193,168,243,83,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,187, - 169,253,3,0,145,232,99,0,145,224,15,0,249,232,31,0,249,232,99,0,145,232,35,0,249,136,0,128,82,232,35,5,41,168,0,0,144,8,97,28,145,169,0,128,82,232,27,0,249,42,0,128,82,233,39,4,41,233,195,0,145,10,40,0,185,227,131,0,145,233,39,0,249,72,0,0,176, - 9,1,20,145,232,15,64,249,226,227,0,145,225,147,0,145,224,67,0,145,9,1,0,249,233,15,64,249,136,0,0,240,8,193,0,145,42,169,3,185,234,15,64,249,72,69,0,249,233,15,64,249,106,8,128,82,42,121,1,121,232,15,64,249,10,133,3,121,233,15,64,249,63,209, - 1,249,70,0,0,148,227,163,0,145,226,3,1,145,225,179,0,145,224,67,0,145,85,0,0,148,253,123,197,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,188,169,253,3,0,145,169,0,128,82,224,23,0,249,232,163,0,145,233,167,2,41,137,0,128,82,232, - 27,0,249,232,163,0,145,233,167,3,41,9,0,64,249,232,31,0,249,72,0,0,176,8,1,20,145,63,1,8,235,128,0,0,84,224,3,9,170,6,4,0,148,224,23,64,249,0,56,64,249,3,4,0,148,232,23,64,249,0,45,64,249,0,4,0,148,232,23,64,249,0,49,64,249,253,3,0,148,232,23, - 64,249,0,53,64,249,250,3,0,148,232,23,64,249,0,37,64,249,247,3,0,148,232,23,64,249,0,41,64,249,244,3,0,148,232,23,64,249,0,61,64,249,241,3,0,148,232,23,64,249,0,65,64,249,238,3,0,148,232,23,64,249,0,225,65,249,235,3,0,148,227,83,0,145,226,195, - 0,145,225,99,0,145,224,67,0,145,52,0,0,148,227,115,0,145,226,227,0,145,225,131,0,145,224,67,0,145,75,0,0,148,253,123,196,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,191,169,253,123,190,169,253,3,0,145,244,3,2,170,243,3,3,170,179, - 11,0,249,32,0,64,185,24,254,255,151,136,2,64,249,9,1,64,249,32,69,64,249,50,211,255,151,96,2,64,185,28,254,255,151,253,123,194,168,243,83,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,191,169,253,123,190,169,253,3,0,145,244,3, - 2,170,243,3,3,170,179,11,0,249,32,0,64,185,4,254,255,151,136,6,64,249,9,1,64,249,138,2,64,249,33,1,64,249,64,1,64,249,82,255,255,151,96,2,64,185,6,254,255,151,253,123,194,168,243,83,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243, - 83,191,169,253,123,190,169,253,3,0,145,243,3,2,170,244,3,3,170,180,11,0,249,32,0,64,185,238,253,255,151,104,2,64,249,9,1,64,249,51,69,64,249,83,1,0,180,224,3,19,170,62,211,255,151,224,0,0,53,136,0,0,240,8,193,0,145,127,2,8,235,96,0,0,84,224, - 3,19,170,157,3,0,148,128,2,64,185,233,253,255,151,253,123,194,168,243,83,193,168,255,35,3,213,192,3,95,214,127,35,3,213,243,83,191,169,253,123,190,169,253,3,0,145,243,3,2,170,244,3,3,170,180,11,0,249,32,0,64,185,210,253,255,151,104,2,64,249, - 19,1,64,249,96,74,64,249,192,1,0,180,177,13,0,148,96,74,64,249,168,0,0,144,8,141,67,249,31,0,8,235,0,1,0,84,136,0,0,240,8,1,22,145,31,0,8,235,128,0,0,84,8,16,64,185,72,0,0,53,217,13,0,148,127,74,0,249,128,2,64,185,200,253,255,151,253,123,194, - 168,243,83,193,168,255,35,3,213,192,3,95,214,0,0,0,0,0,0,0,0,0,0,0,0,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,224,0,128,82,177,253,255,151,19,0,128,82,0,0,128,82,34,15,0,148,128,0,0,53,30,0,0,148,95,0,0,148,51,0,128,82,224,0,128, - 82,178,253,255,151,224,3,19,42,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95,214,127,35,3,213,243,83,191,169,253,123,191,169,253,3,0,145,168,0,0,144,20,65,10,145,19,0,128,210,96,106,116,248,96,0,0,180,241,14,0,148,127,106,52,248,115,34, - 0,145,127,2,16,241,67,255,255,84,32,0,128,82,253,123,193,168,243,83,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,188,169,245,91,1,169,247,99,2,169,249,27,0,249,253,123,184,169,253,3,0,145,136,0,0,144,8,193,46,145,9,253,223,200, - 224,67,0,145,32,1,63,214,232,167,64,121,168,5,0,52,233,47,64,249,105,5,0,180,40,1,64,185,52,17,0,145,9,0,132,82,31,9,64,113,150,194,40,139,19,177,137,26,224,3,19,42,235,14,0,148,168,0,0,144,8,145,70,185,127,2,8,107,21,193,147,26,213,3,0,52,169, - 0,0,144,56,65,10,145,136,0,0,144,23,193,45,145,19,0,128,210,25,9,128,210,192,134,64,248,31,4,0,177,32,2,0,84,31,8,0,177,224,1,0,84,137,2,64,57,169,1,0,54,137,0,24,55,232,254,223,200,0,1,63,214,32,1,0,52,104,254,70,147,8,123,104,248,105,22,64, - 146,42,33,25,155,201,130,95,248,73,21,0,249,136,2,64,57,72,225,0,57,115,6,0,145,148,6,0,145,181,6,0,81,85,253,255,53,253,123,200,168,249,27,64,249,247,99,66,169,245,91,65,169,243,83,196,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243, - 83,187,169,245,91,1,169,247,99,2,169,249,107,3,169,251,35,0,249,253,123,191,169,253,3,0,145,168,0,0,144,23,65,10,145,136,0,0,144,24,225,46,145,137,0,0,144,57,193,45,145,20,0,128,82,58,0,128,146,10,9,128,210,59,16,128,82,150,126,64,147,200,254, - 70,147,232,122,104,248,201,22,64,146,51,33,10,155,105,22,64,249,40,9,0,145,31,5,0,241,169,0,0,84,104,226,64,57,8,1,25,50,104,226,0,57,43,0,0,20,123,226,0,57,244,0,0,52,159,6,0,113,96,0,0,84,96,1,128,18,4,0,0,20,64,1,128,18,2,0,0,20,32,1,128, - 18,8,255,223,200,0,1,63,214,245,3,0,170,168,6,0,145,31,5,0,241,73,2,0,84,40,255,223,200,0,1,63,214,224,1,0,52,8,28,0,18,117,22,0,249,31,9,0,113,161,0,0,84,104,226,64,57,8,1,26,50,104,226,0,57,16,0,0,20,31,13,0,113,10,9,128,210,193,1,0,84,104, - 226,64,57,8,1,29,50,223,255,255,23,104,226,64,57,122,22,0,249,8,1,26,50,104,226,0,57,168,0,0,144,9,149,67,249,105,0,0,180,40,121,118,248,26,25,0,185,10,9,128,210,148,6,0,17,159,14,0,113,225,248,255,84,253,123,193,168,251,35,64,249,249,107,67, - 169,247,99,66,169,245,91,65,169,243,83,197,168,255,35,3,213,192,3,95,214,0,0,0,0,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,136,0,0,144,8,129,44,145,9,253,223,200,32,1,63,214,168,0,0,144,0,77,3,249,136,0,0,144,8,161,44,145,9,253,223,200, - 32,1,63,214,168,0,0,144,0,81,3,249,32,0,128,82,253,123,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,49,253,255,151,168,0,0,144,1,97,27,145,24,1,0,148,253,123,193,168,255,35,3,213,192,3,95,214,0,0,0,0,0,0, - 0,0,127,35,3,213,243,83,191,169,253,123,191,169,253,3,0,145,180,0,0,144,136,146,91,57,104,2,0,53,168,0,0,144,19,33,27,145,137,0,0,240,40,193,0,145,104,10,0,249,137,0,0,240,41,193,13,145,136,0,0,240,8,129,9,145,104,38,0,169,85,253,255,151,226, - 3,0,170,64,0,128,18,99,66,0,145,33,0,128,82,44,1,0,148,40,0,128,82,136,146,27,57,32,0,128,82,253,123,193,168,243,83,193,168,255,35,3,213,192,3,95,214,127,35,3,213,253,123,189,169,243,83,1,169,245,91,2,169,253,3,0,145,253,208,255,151,255,67,0, - 209,243,3,1,170,158,0,0,148,244,3,0,42,84,18,0,52,136,0,0,240,22,1,18,145,10,0,128,82,11,6,128,210,85,125,64,211,168,126,11,155,9,105,118,184,63,1,20,107,32,10,0,84,74,5,0,17,95,21,0,113,35,255,255,84,8,189,159,82,159,2,8,107,32,9,0,84,136,0, - 0,144,8,97,48,145,9,253,223,200,128,62,0,83,32,1,63,214,96,8,0,52,40,189,159,82,159,2,8,107,33,1,0,84,104,6,0,185,127,18,1,249,127,26,0,185,127,58,0,121,127,10,0,185,127,194,0,248,127,22,0,185,111,0,0,20,136,0,0,144,8,97,44,145,9,253,223,200, - 225,3,0,145,224,3,20,42,32,1,63,214,192,5,0,52,34,32,128,82,1,0,128,82,96,98,0,145,97,210,255,151,232,3,64,185,116,6,0,185,127,18,1,249,31,9,0,113,65,4,0,84,232,27,64,57,234,27,0,145,72,2,0,52,72,5,64,57,8,2,0,52,73,1,64,57,63,1,8,107,104,1, - 0,84,8,1,9,75,12,5,0,17,43,5,0,17,105,66,43,139,140,5,0,81,107,5,0,17,40,97,64,57,8,1,30,50,40,97,0,57,76,255,255,53,72,45,64,56,8,254,255,53,42,0,128,82,74,5,0,17,105,66,42,139,95,253,3,113,40,97,64,57,8,1,29,50,40,97,0,57,67,255,255,84,96, - 6,64,185,48,1,0,148,41,0,128,82,96,18,1,249,2,0,0,20,9,0,128,82,105,10,0,185,202,255,255,23,136,0,0,240,8,225,70,185,104,7,0,53,0,0,128,18,60,0,0,20,34,32,128,82,1,0,128,82,96,98,0,145,47,210,255,151,136,0,0,208,6,193,17,145,12,0,128,210,141, - 0,128,82,197,0,128,210,199,66,0,145,168,50,5,155,235,12,8,139,105,1,64,57,169,2,0,52,104,5,64,57,104,2,0,52,110,1,64,57,223,1,8,107,200,1,0,84,207,5,0,17,255,5,4,113,98,1,0,84,106,66,47,139,137,105,102,56,206,5,0,17,72,97,64,57,239,5,0,17,40, - 1,8,42,72,97,0,57,104,5,64,57,223,1,8,107,169,254,255,84,104,45,64,56,168,253,255,53,140,5,0,145,173,5,0,81,205,252,255,53,40,0,128,82,116,162,0,41,224,3,20,42,252,0,0,148,10,0,128,210,96,18,1,249,108,50,0,145,203,0,128,82,14,3,128,210,205,18, - 0,145,168,42,14,155,107,5,0,81,74,5,0,145,169,121,104,120,137,37,0,120,107,255,255,53,224,3,19,170,2,1,0,148,3,0,0,20,224,3,19,170,53,0,0,148,0,0,128,82,255,67,0,145,106,208,255,151,245,91,66,169,243,83,65,169,253,123,195,168,255,35,3,213,192, - 3,95,214,127,35,3,213,243,15,31,248,253,123,189,169,253,3,0,145,243,3,0,42,224,67,0,145,1,0,128,210,253,239,255,151,137,0,0,240,63,225,6,185,127,10,0,49,193,0,0,84,40,0,128,82,40,225,6,185,105,0,0,240,40,97,46,145,7,0,0,20,127,14,0,49,33,1,0, - 84,40,0,128,82,40,225,6,185,105,0,0,240,40,65,44,145,9,253,223,200,32,1,63,214,243,3,0,42,7,0,0,20,127,18,0,49,161,0,0,84,40,0,128,82,40,225,6,185,232,15,64,249,19,13,64,185,232,163,64,57,168,0,0,52,234,11,64,249,72,169,67,185,9,121,30,18,73, - 169,3,185,224,3,19,42,253,123,195,168,243,7,65,248,255,35,3,213,192,3,95,214,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,243,3,0,170,96,98,0,145,34,32,128,82,1,0,128,82,188,209,255,151,136,0,0,208,12,193,0,145,127,66,0,248,138,97, - 0,145,127,18,1,249,107,98,0,145,127,194,0,248,41,32,128,82,127,22,0,185,72,21,64,56,41,5,0,81,104,21,0,56,169,255,255,53,138,101,4,145,107,102,4,145,9,32,128,82,72,21,64,56,41,5,0,81,104,21,0,56,169,255,255,53,253,123,193,168,243,7,65,248,255, - 35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,190,169,245,11,0,249,253,123,191,169,253,3,0,145,244,3,0,170,245,3,1,170,137,170,67,185,136,0,0,208,8,13,72,185,63,1,8,106,160,0,0,84,136,74,64,249,104,0,0,180,147,70,64,249,23,0,0,20,160,0,128, - 82,179,251,255,151,147,70,64,249,168,2,64,249,127,2,8,235,224,1,0,84,83,1,0,180,224,3,19,170,2,209,255,151,224,0,0,53,136,0,0,208,8,193,0,145,127,2,8,235,96,0,0,84,224,3,19,170,97,1,0,148,179,2,64,249,147,70,0,249,224,3,19,170,191,208,255,151, - 160,0,128,82,169,251,255,151,243,0,0,180,224,3,19,170,253,123,193,168,245,11,64,249,243,83,194,168,255,35,3,213,192,3,95,214,231,242,255,151,0,0,62,212,0,0,0,0,127,35,3,213,243,83,190,169,245,11,0,249,255,195,9,209,253,123,0,169,253,3,0,145, - 243,3,0,42,226,15,0,249,52,28,0,83,227,23,0,249,225,3,3,170,224,3,2,170,196,255,255,151,224,3,19,42,116,255,255,151,232,15,64,249,245,3,0,42,8,69,64,249,9,5,64,185,191,2,9,107,97,0,0,84,0,0,128,82,72,0,0,20,0,69,128,210,144,10,0,148,243,3,0, - 170,179,0,0,181,0,0,128,210,52,1,0,148,0,0,128,18,64,0,0,20,232,15,64,249,224,3,1,145,2,69,128,82,1,69,64,249,215,207,255,151,225,3,1,145,2,69,128,82,224,3,19,170,211,207,255,151,225,3,19,170,127,2,0,185,224,3,21,42,177,254,255,151,245,3,0,42, - 191,6,0,49,193,0,0,84,107,4,0,148,200,2,128,82,8,0,0,185,224,3,19,170,233,255,255,23,84,0,0,53,29,10,0,148,232,15,64,249,0,69,64,249,178,208,255,151,0,1,0,53,232,15,64,249,0,69,64,249,137,0,0,208,40,193,0,145,31,0,8,235,64,0,0,84,16,1,0,148, - 40,0,128,82,104,2,0,185,232,15,64,249,19,69,0,249,233,15,64,249,136,0,0,208,8,13,72,185,42,169,67,185,95,1,8,106,33,2,0,84,232,99,0,145,232,27,0,249,168,0,128,82,233,163,0,145,232,35,4,41,227,131,0,145,233,31,0,249,226,195,0,145,225,147,0,145, - 224,67,0,145,169,0,0,148,180,0,0,52,232,23,64,249,9,1,64,249,138,0,0,208,73,113,3,249,0,0,128,210,244,0,0,148,224,3,21,42,253,123,64,169,255,195,9,145,245,11,64,249,243,83,194,168,255,35,3,213,192,3,95,214,31,144,14,113,0,2,0,84,31,160,14,113, - 96,1,0,84,31,212,14,113,192,0,0,84,72,0,0,176,8,225,41,145,31,216,14,113,224,19,136,154,9,0,0,20,72,0,0,176,0,161,41,145,6,0,0,20,72,0,0,176,0,97,41,145,3,0,0,20,72,0,0,176,0,33,41,145,192,3,95,214,127,35,3,213,253,123,190,169,243,11,0,249,253, - 3,0,145,98,207,255,151,255,131,28,209,243,3,0,170,96,6,64,185,40,189,159,82,31,0,8,107,192,10,0,84,104,0,0,240,8,97,44,145,9,253,223,200,225,67,0,145,32,1,63,214,0,10,0,52,8,0,128,82,233,163,0,145,40,21,0,56,8,5,0,17,31,1,4,113,163,255,255,84, - 11,4,128,82,232,91,64,57,235,163,0,57,233,91,0,145,136,1,0,52,236,163,0,145,42,5,64,57,5,0,0,20,31,1,4,113,162,0,0,84,139,73,40,56,8,5,0,17,31,1,10,107,105,255,255,84,40,45,64,56,232,254,255,53,101,6,64,185,6,0,128,82,228,163,12,145,3,32,128, - 82,226,163,0,145,33,0,128,82,0,0,128,210,170,12,0,148,103,6,64,185,6,32,128,82,97,18,65,249,229,163,4,145,255,3,0,185,4,32,128,82,227,163,0,145,2,32,128,82,0,0,128,210,16,13,0,148,103,6,64,185,6,32,128,82,97,18,65,249,229,163,8,145,255,3,0,185, - 4,32,128,82,227,163,0,145,2,64,128,82,0,0,128,210,6,13,0,148,44,0,128,82,10,0,128,210,238,163,12,145,13,32,128,82,239,163,4,145,231,163,8,145,201,37,64,120,233,0,0,54,105,66,44,139,75,105,111,56,40,97,64,57,8,1,28,50,40,97,0,57,9,0,0,20,233, - 0,8,54,105,66,44,139,75,105,103,56,40,97,64,57,8,1,27,50,40,97,0,57,2,0,0,20,11,0,128,82,72,1,19,139,11,101,4,57,74,5,0,145,140,5,0,17,173,5,0,81,109,253,255,53,32,0,0,20,12,0,128,210,11,4,128,82,13,32,128,82,104,133,1,81,31,101,0,113,8,1,0, - 84,104,125,0,81,106,66,40,139,110,29,0,83,73,97,64,57,40,1,28,50,72,97,0,57,13,0,0,20,104,5,2,81,31,101,0,113,40,1,0,84,104,125,0,81,106,66,40,139,73,97,64,57,40,1,27,50,105,1,3,17,72,97,0,57,46,29,0,83,2,0,0,20,14,0,128,82,104,2,12,139,14,101, - 4,57,107,5,0,17,140,5,0,145,173,5,0,81,173,252,255,53,255,131,28,145,238,206,255,151,243,11,64,249,253,123,194,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,190,169,245,91,1,169,253,123,190,169,253,3,0,145,244,3,2,170,246,3,3,170, - 182,11,0,249,32,0,64,185,141,250,255,151,136,2,64,249,9,1,64,249,42,69,64,249,65,97,0,145,136,0,0,240,21,33,27,145,160,2,64,249,32,1,0,180,161,0,0,180,34,32,128,82,232,206,255,151,211,2,128,82,8,0,0,20,34,32,128,210,1,0,128,82,91,208,255,151, - 130,3,0,148,211,2,128,82,19,0,0,185,153,0,0,148,136,2,64,249,9,1,64,249,42,69,64,249,75,101,4,145,168,6,64,249,168,1,0,180,235,0,0,180,105,1,4,145,112,69,193,172,16,69,129,172,127,1,9,235,161,255,255,84,9,0,0,20,18,228,0,79,9,1,4,145,18,73,129, - 172,31,1,9,235,193,255,255,84,108,3,0,148,19,0,0,185,132,0,0,148,136,6,64,249,9,1,64,249,32,1,64,249,182,207,255,151,32,1,0,53,136,6,64,249,9,1,64,249,32,1,64,249,136,0,0,208,8,193,0,145,31,0,8,235,64,0,0,84,19,0,0,148,136,2,64,249,11,1,64,249, - 137,6,64,249,42,1,64,249,104,69,64,249,72,1,0,249,137,2,64,249,42,1,64,249,64,69,64,249,107,207,255,151,192,2,64,185,85,250,255,151,253,123,194,168,245,91,65,169,243,83,194,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,15,31,248,253, - 123,191,169,253,3,0,145,64,2,0,180,226,3,0,170,136,0,0,240,0,69,65,249,105,0,0,240,40,129,47,145,9,253,223,200,1,0,128,82,32,1,63,214,32,1,0,53,104,0,0,240,8,225,45,145,9,253,223,200,32,1,63,214,106,3,0,148,243,3,0,42,54,3,0,148,19,0,0,185,253, - 123,193,168,243,7,65,248,255,35,3,213,192,3,95,214,127,35,3,213,243,83,190,169,245,11,0,249,253,123,191,169,253,3,0,145,244,3,0,170,245,3,1,170,159,2,21,235,96,4,0,84,243,3,20,170,104,2,64,249,8,1,0,180,239,3,8,170,113,0,0,240,49,82,66,249,32, - 2,63,214,224,1,63,214,8,28,0,83,136,0,0,52,115,66,0,145,127,2,21,235,161,254,255,84,127,2,21,235,128,2,0,84,127,2,20,235,0,2,0,84,115,34,0,209,104,130,95,248,40,1,0,180,104,2,64,249,232,0,0,180,0,0,128,82,239,3,8,170,113,0,0,240,49,82,66,249, - 32,2,63,214,224,1,63,214,115,66,0,209,104,34,0,145,31,1,20,235,97,254,255,84,0,0,128,82,2,0,0,20,32,0,128,82,253,123,193,168,245,11,64,249,243,83,194,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,191,169,253,123,191,169,253,3,0,145, - 244,3,0,170,243,3,1,170,159,2,19,235,128,1,0,84,104,130,95,248,232,0,0,180,0,0,128,82,239,3,8,170,113,0,0,240,49,82,66,249,32,2,63,214,224,1,63,214,115,66,0,209,127,2,20,235,193,254,255,84,32,0,128,82,253,123,193,168,243,83,193,168,255,35,3, - 213,192,3,95,214,4,0,128,210,3,0,128,82,2,0,128,210,1,0,128,210,0,0,128,210,97,0,0,20,160,0,128,82,96,0,62,212,192,3,95,214,0,0,0,0,136,0,0,240,0,117,3,249,192,3,95,214,0,0,0,0,127,35,3,213,243,83,189,169,245,91,1,169,247,99,2,169,253,123,191, - 169,253,3,0,145,248,3,5,170,243,3,0,170,0,3,64,249,244,3,1,170,245,3,2,170,246,3,3,42,247,3,4,170,128,0,0,181,224,3,24,170,141,238,255,151,96,2,0,180,8,220,65,249,40,2,0,180,228,3,23,170,227,3,22,42,226,3,21,170,225,3,20,170,224,3,19,170,239, - 3,8,170,113,0,0,240,49,82,66,249,32,2,63,214,224,1,63,214,253,123,193,168,247,99,66,169,245,91,65,169,243,83,195,168,255,35,3,213,192,3,95,214,136,0,0,240,0,161,27,145,225,3,24,170,22,0,0,148,136,0,0,208,9,9,64,249,11,0,64,249,228,3,23,170,227, - 3,22,42,42,21,0,18,41,1,11,202,226,3,21,170,44,45,202,154,225,3,20,170,224,3,19,170,236,0,0,180,239,3,12,170,113,0,0,240,49,82,66,249,32,2,63,214,224,1,63,214,229,255,255,23,191,255,255,151,0,0,62,212,0,0,0,0,127,35,3,213,243,83,191,169,253, - 123,191,169,253,3,0,145,243,3,1,170,104,66,64,57,244,3,0,170,200,1,0,53,104,0,0,240,8,225,45,145,9,253,223,200,32,1,63,214,40,0,128,82,127,6,0,249,104,66,0,57,105,0,0,240,40,97,50,145,9,253,223,200,32,1,63,214,8,0,128,210,2,0,0,20,104,6,64,249, - 128,14,8,139,253,123,193,168,243,83,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,187,169,253,3,0,145,136,0,0,240,8,65,71,185,255,11,0,249,255,131,0,57,255,227,0,57,255,3,1,57,255,35,1,57,8,1,0,53,136,0,0,208,8,97,27,145,16, - 1,192,61,233,163,0,145,48,1,128,61,41,0,128,82,233,227,0,57,229,67,0,145,149,255,255,151,224,67,0,145,179,237,255,151,253,123,197,168,255,35,3,213,192,3,95,214,0,0,0,0,136,0,0,240,8,193,27,145,0,1,0,169,0,1,1,169,192,3,95,214,0,0,0,0,127,35, - 3,213,253,123,190,169,253,3,0,145,227,83,0,145,226,67,0,145,225,99,0,145,224,67,0,145,104,0,128,82,232,163,2,41,187,0,0,148,253,123,194,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,188,169,245,91,1,169,247,99,2,169,249,27,0,249, - 251,31,0,249,253,123,189,169,253,3,0,145,243,3,0,42,21,0,128,210,27,0,128,82,52,0,128,82,180,67,0,57,127,46,0,113,140,5,0,84,32,1,0,84,127,10,0,113,192,5,0,84,127,18,0,113,160,0,0,84,127,26,0,113,64,5,0,84,127,34,0,113,65,3,0,84,244,249,255, - 151,245,3,0,170,85,1,0,181,0,0,128,18,253,123,195,168,251,31,64,249,249,27,64,249,247,99,66,169,245,91,65,169,243,83,196,168,255,35,3,213,192,3,95,214,169,2,64,249,72,0,0,144,8,225,66,249,42,17,8,139,5,0,0,20,40,5,64,185,31,1,19,107,160,0,0, - 84,41,65,0,145,63,1,10,235,97,255,255,84,9,0,128,210,201,0,0,181,33,2,0,148,200,2,128,82,8,0,0,185,56,255,255,151,230,255,255,23,55,33,0,145,20,0,128,82,191,67,0,57,9,0,0,20,127,62,0,113,128,0,0,84,104,86,0,81,31,5,0,113,104,254,255,84,224,3, - 19,42,92,0,0,148,247,3,0,170,24,0,128,210,116,0,0,52,96,0,128,82,7,249,255,151,246,2,64,249,136,0,0,208,25,65,0,145,180,0,0,52,40,3,64,249,10,21,0,18,201,2,8,202,54,45,202,154,223,6,0,241,96,4,0,84,182,8,0,180,127,46,0,113,232,1,0,84,8,34,129, - 82,8,37,211,26,136,1,0,54,184,6,64,249,184,19,0,249,191,6,0,249,127,34,0,113,193,2,0,84,67,249,255,151,27,16,64,185,187,23,0,185,64,249,255,151,136,17,128,82,8,16,0,185,127,34,0,113,193,1,0,84,72,0,0,144,9,229,66,249,168,2,64,249,10,17,9,139, - 75,0,0,144,104,233,66,249,73,17,8,139,170,15,0,249,95,1,9,235,192,0,0,84,95,5,0,249,74,65,0,145,251,255,255,23,40,3,64,249,232,2,0,249,116,0,0,52,96,0,128,82,226,248,255,151,223,6,0,241,97,0,0,84,0,0,128,82,164,255,255,23,127,34,0,113,65,1,0, - 84,35,249,255,151,1,16,64,185,0,1,128,82,239,3,22,170,113,0,0,240,49,82,66,249,32,2,63,214,224,1,63,214,7,0,0,20,224,3,19,42,239,3,22,170,113,0,0,240,49,82,66,249,32,2,63,214,224,1,63,214,127,46,0,113,136,253,255,84,8,34,129,82,8,37,211,26,40, - 253,7,54,184,6,0,249,127,34,0,113,193,252,255,84,12,249,255,151,27,16,0,185,227,255,255,23,116,0,0,52,96,0,128,82,191,248,255,151,96,0,128,82,181,231,255,151,0,0,62,212,0,0,0,0,31,8,0,113,192,2,0,84,31,24,0,113,32,2,0,84,31,60,0,113,96,1,0,84, - 31,84,0,113,160,0,0,84,31,88,0,113,96,1,0,84,0,0,128,210,14,0,0,20,136,0,0,240,8,193,27,145,0,33,0,145,10,0,0,20,136,0,0,240,8,193,27,145,0,97,0,145,6,0,0,20,136,0,0,240,0,1,28,145,3,0,0,20,136,0,0,240,0,193,27,145,192,3,95,214,127,35,3,213, - 243,83,191,169,253,123,190,169,253,3,0,145,243,3,3,170,179,11,0,249,32,0,64,185,143,248,255,151,136,0,0,208,9,9,64,249,42,21,0,18,139,0,0,240,104,129,67,249,41,1,8,202,52,45,202,154,96,2,64,185,144,248,255,151,224,3,20,170,253,123,194,168,243, - 83,193,168,255,35,3,213,192,3,95,214,136,0,0,208,0,137,3,249,192,3,95,214,0,0,0,0,32,0,128,82,97,0,0,20,31,32,3,213,0,0,0,0,127,35,3,213,243,15,31,248,253,123,187,169,253,3,0,145,136,0,0,208,8,65,71,185,255,11,0,249,255,131,0,57,243,3,0,170, - 255,227,0,57,255,3,1,57,255,35,1,57,8,1,0,53,136,0,0,176,8,97,27,145,16,1,192,61,233,163,0,145,48,1,128,61,41,0,128,82,233,227,0,57,179,0,0,181,0,0,128,82,72,0,0,148,243,3,0,42,16,0,0,20,225,67,0,145,224,3,19,170,21,0,0,148,96,0,0,52,19,0,128, - 18,10,0,0,20,104,22,64,185,191,59,3,213,8,45,11,83,168,0,0,52,224,3,19,170,218,11,0,148,127,11,0,148,224,254,255,53,19,0,128,82,224,67,0,145,157,236,255,151,224,3,19,42,253,123,197,168,243,7,65,248,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3, - 213,243,83,190,169,245,91,1,169,253,123,191,169,253,3,0,145,243,3,0,170,105,22,64,185,246,3,1,170,191,59,3,213,40,5,0,18,31,9,0,113,129,3,0,84,63,5,26,114,64,3,0,84,104,82,64,169,21,1,20,75,116,2,0,249,191,2,0,113,127,18,0,185,141,2,0,84,186, - 11,0,148,227,3,22,170,226,3,21,42,225,3,20,170,166,12,0,148,191,2,0,107,192,0,0,84,1,2,128,82,96,82,0,145,97,205,255,151,0,0,128,18,9,0,0,20,104,22,64,185,191,59,3,213,8,9,2,83,136,0,0,52,65,0,128,18,96,82,0,145,140,205,255,151,0,0,128,82,253, - 123,193,168,245,91,65,169,243,83,194,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,188,169,253,3,0,145,233,67,0,145,224,67,0,57,232,83,0,145,232,167,2,169,9,1,128,82,255,255,2,41,232,99,0,145,233,167,3,41,227,115,0,145,232,31,0, - 249,226,163,0,145,225,131,0,145,224,71,0,145,62,0,0,148,232,67,64,57,233,23,64,185,31,1,0,113,232,27,64,185,32,17,136,26,253,123,196,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,191,169,253,123,190,169,253,3,0,145,243,3,2,170,244, - 3,3,170,180,11,0,249,32,0,64,249,106,0,0,148,106,6,64,249,104,2,64,249,9,1,64,249,41,4,0,180,41,21,64,185,191,59,3,213,40,53,13,83,168,3,0,52,40,5,0,18,31,9,0,113,97,0,0,84,63,5,26,114,65,0,0,84,9,2,88,54,104,10,64,249,9,1,64,57,233,0,0,53,104, - 2,64,249,8,1,64,249,9,21,64,185,191,59,3,213,40,5,1,83,200,1,0,52,104,2,64,249,0,1,64,249,102,255,255,151,31,4,0,49,192,0,0,84,106,6,64,249,72,1,64,185,9,5,0,17,73,1,0,185,4,0,0,20,104,14,64,249,9,0,128,18,9,1,0,185,128,2,64,249,74,0,0,148,253, - 123,194,168,243,83,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,190,169,245,91,1,169,253,123,186,169,253,3,0,145,245,3,2,170,244,3,3,170,180,31,0,249,32,0,64,185,195,247,255,151,136,0,0,208,19,149,67,249,137,0,0,208,40,33,71, - 185,118,206,40,139,179,27,0,249,127,2,22,235,160,4,0,84,104,2,64,249,168,15,0,249,170,2,64,249,200,1,0,180,9,21,64,185,191,59,3,213,40,53,13,83,72,1,0,52,40,5,0,18,31,9,0,113,97,0,0,84,63,5,26,114,225,0,0,84,201,0,88,55,72,1,64,185,9,5,0,17, - 73,1,0,185,115,34,0,145,235,255,255,23,170,10,64,249,169,6,64,249,168,2,64,249,171,99,0,145,171,35,0,249,168,39,0,249,169,43,0,249,170,47,0,249,168,15,64,249,168,19,0,249,168,23,0,249,163,131,0,145,162,3,1,145,161,163,0,145,160,67,0,145,152, - 255,255,151,238,255,255,23,128,2,64,185,159,247,255,151,253,123,198,168,245,91,65,169,243,83,194,168,255,35,3,213,192,3,95,214,0,0,0,0,104,0,0,208,8,193,42,145,9,253,223,200,0,192,0,145,32,1,31,214,0,0,0,0,104,0,0,208,8,161,48,145,9,253,223, - 200,0,192,0,145,32,1,31,214,0,0,0,0,127,35,3,213,243,83,188,169,245,91,1,169,247,99,2,169,249,107,3,169,253,123,191,169,253,3,0,145,147,0,0,208,104,34,71,185,116,0,128,82,104,0,0,53,8,64,128,82,3,0,0,20,31,13,0,113,136,178,136,26,1,1,128,210, - 104,34,7,185,0,125,64,147,208,0,0,148,152,0,0,208,0,151,3,249,0,0,128,210,40,253,255,151,8,151,67,249,136,1,0,181,1,1,128,210,116,34,7,185,96,0,128,210,198,0,0,148,0,151,3,249,0,0,128,210,31,253,255,151,8,151,67,249,104,0,0,181,0,0,128,18,31, - 0,0,20,136,0,0,176,19,193,27,145,137,0,0,208,55,65,10,145,21,0,128,210,22,0,128,210,116,0,128,82,26,9,128,210,57,0,128,18,2,0,128,82,1,244,129,82,96,194,0,145,250,245,255,151,8,151,67,249,169,254,70,147,170,22,64,146,211,106,40,248,232,122,105, - 248,73,33,26,155,43,21,64,249,104,9,0,145,31,9,0,241,72,0,0,84,121,26,0,185,181,6,0,145,214,34,0,145,115,98,1,145,148,6,0,81,180,253,255,53,0,0,128,82,253,123,193,168,249,107,67,169,247,99,66,169,245,91,65,169,243,83,196,168,255,35,3,213,192, - 3,95,214,0,0,0,0,0,0,0,0,0,0,0,0,127,35,3,213,243,83,190,169,245,91,1,169,253,123,191,169,253,3,0,145,181,254,255,151,70,14,0,148,104,0,0,208,21,129,42,145,19,0,128,210,116,0,128,82,150,0,0,208,200,150,67,249,96,106,104,248,116,14,0,148,200, - 150,67,249,105,106,104,248,170,254,223,200,32,193,0,145,64,1,63,214,115,34,0,145,148,6,0,81,212,254,255,53,192,150,67,249,218,252,255,151,223,150,3,249,253,123,193,168,245,91,65,169,243,83,194,168,255,35,3,213,192,3,95,214,0,0,0,0,232,3,18,170, - 8,49,64,249,9,189,64,185,32,33,8,83,192,3,95,214,0,0,0,0,232,3,18,170,8,49,64,249,9,17,64,249,42,9,64,185,64,125,31,83,192,3,95,214,127,35,3,213,253,123,190,169,253,3,0,145,255,19,0,185,246,255,255,151,8,28,0,83,104,0,0,53,224,67,0,145,38,246, - 255,151,232,19,64,185,31,5,0,113,224,7,159,26,253,123,194,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,183,247,255,151,128,0,0,181,136,0,0,176,0,225,31,145,2,0,0,20,0,128,0,145,253,123,193,168,255,35,3,213,192, - 3,95,214,127,35,3,213,253,123,191,169,253,3,0,145,171,247,255,151,128,0,0,181,136,0,0,176,0,241,31,145,2,0,0,20,0,144,0,145,253,123,193,168,255,35,3,213,192,3,95,214,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,243,3,0,42,157,247,255, - 151,128,0,0,181,136,0,0,176,8,241,31,145,2,0,0,20,8,144,0,145,224,3,19,42,19,1,0,185,13,0,0,148,243,3,0,42,147,247,255,151,128,0,0,181,136,0,0,176,8,225,31,145,2,0,0,20,8,128,0,145,19,1,0,185,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95, - 214,72,0,0,176,10,65,4,145,9,0,128,82,43,125,125,211,104,105,106,184,31,0,8,107,224,1,0,84,41,5,0,17,63,181,0,113,67,255,255,84,8,76,0,81,31,69,0,113,104,0,0,84,160,1,128,82,9,0,0,20,8,240,2,81,31,57,0,113,10,1,128,82,201,2,128,82,64,145,137, - 26,3,0,0,20,72,17,0,145,96,105,104,184,192,3,95,214,127,35,3,213,243,83,191,169,253,123,191,169,253,3,0,145,243,3,1,170,52,0,128,82,96,54,0,185,116,226,0,57,224,255,255,151,96,46,0,185,116,194,0,57,253,123,193,168,243,83,193,168,255,35,3,213, - 192,3,95,214,0,0,0,0,127,35,3,213,243,83,190,169,245,11,0,249,253,123,191,169,253,3,0,145,160,0,0,180,232,3,128,146,8,9,192,154,31,1,1,235,131,3,0,84,8,124,1,155,41,0,128,210,149,0,0,208,160,70,65,249,31,1,0,241,51,1,136,154,104,0,0,208,8,97, - 47,145,9,253,223,200,226,3,19,170,1,1,128,82,32,1,63,214,96,2,0,181,104,0,0,208,20,97,47,145,13,14,0,148,96,1,0,52,224,3,19,170,84,229,255,151,0,1,0,52,160,70,65,249,226,3,19,170,136,254,223,200,1,1,128,82,0,1,63,214,192,254,255,180,5,0,0,20, - 129,255,255,151,136,1,128,82,8,0,0,185,0,0,128,210,253,123,193,168,245,11,64,249,243,83,194,168,255,35,3,213,192,3,95,214,54,0,0,20,31,32,3,213,31,32,3,213,0,0,0,0,127,35,3,213,243,83,191,169,253,123,188,169,253,3,0,145,243,3,0,170,244,3,1,170, - 1,0,128,210,224,99,0,145,88,234,255,151,232,19,64,249,41,189,159,82,8,13,64,185,31,1,9,107,33,1,0,84,232,195,64,57,168,0,0,52,234,15,64,249,72,169,67,185,9,121,30,18,73,169,3,185,35,189,159,82,17,0,0,20,218,244,255,151,232,195,64,57,0,1,0,53, - 168,0,0,52,234,15,64,249,72,169,67,185,9,121,30,18,73,169,3,185,35,0,128,82,7,0,0,20,168,0,0,52,234,15,64,249,72,169,67,185,9,121,30,18,73,169,3,185,3,0,128,82,226,67,0,145,225,3,19,170,224,3,20,170,165,0,0,148,96,0,0,52,0,0,128,210,2,0,0,20, - 96,10,64,249,253,123,196,168,243,83,193,168,255,35,3,213,192,3,95,214,127,35,3,213,243,83,187,169,245,91,1,169,247,99,2,169,249,107,3,169,251,35,0,249,253,123,188,169,253,3,0,145,243,3,0,170,247,3,1,170,247,0,0,181,55,255,255,151,200,2,128,82, - 8,0,0,185,78,252,255,151,192,2,128,82,124,0,0,20,255,2,0,249,20,0,128,210,104,2,64,249,255,127,2,169,21,0,128,210,255,27,0,249,136,3,0,180,84,229,135,82,225,67,0,145,244,35,0,121,224,3,8,170,255,75,0,57,235,14,0,148,104,2,64,249,96,1,0,181,227, - 131,0,145,2,0,128,210,1,0,128,210,224,3,8,170,90,1,0,148,245,3,0,42,85,1,0,52,244,91,66,169,243,3,20,170,18,0,0,20,225,3,0,170,224,3,8,170,226,131,0,145,185,1,0,148,246,3,0,42,246,1,0,53,104,142,64,248,8,253,255,181,244,87,66,169,168,2,20,203, - 9,253,67,147,54,5,0,145,25,0,128,210,234,3,20,170,24,0,0,20,96,134,64,248,190,251,255,151,127,2,22,235,161,255,255,84,36,0,0,20,244,87,66,169,243,3,20,170,3,0,0,20,96,134,64,248,182,251,255,151,127,2,21,235,161,255,255,84,245,3,22,42,27,0,0, - 20,75,133,64,248,104,1,192,57,233,3,11,170,104,0,0,52,40,29,192,56,232,255,255,53,40,1,11,203,9,1,25,139,57,5,0,145,95,1,21,235,193,254,255,84,34,0,128,210,225,3,25,170,224,3,22,170,65,230,255,151,243,3,0,170,211,1,0,181,0,0,128,210,159,251, - 255,151,243,3,20,170,3,0,0,20,96,134,64,248,155,251,255,151,127,2,21,235,161,255,255,84,21,0,128,18,224,3,20,170,150,251,255,151,224,3,21,42,40,0,0,20,106,14,22,139,246,3,20,170,223,2,21,235,234,15,0,249,248,3,10,170,192,2,0,84,123,2,22,203, - 194,2,64,249,72,0,192,57,233,3,2,170,104,0,0,52,40,29,192,56,232,255,255,53,40,1,2,203,26,5,0,145,73,1,24,203,227,3,26,170,33,1,25,139,224,3,24,170,82,14,0,148,96,3,0,53,120,107,54,248,214,34,0,145,223,2,21,235,234,15,64,249,88,3,24,139,161, - 253,255,84,0,0,128,210,243,2,0,249,118,251,255,151,243,3,20,170,3,0,0,20,96,134,64,248,114,251,255,151,127,2,21,235,161,255,255,84,224,3,20,170,110,251,255,151,0,0,128,82,253,123,196,168,251,35,64,249,249,107,67,169,247,99,66,169,245,91,65,169, - 243,83,197,168,255,35,3,213,192,3,95,214,4,0,128,210,3,0,128,82,2,0,128,210,1,0,128,210,0,0,128,210,201,251,255,151,0,0,62,212,0,0,0,0,127,35,3,213,243,83,189,169,245,91,1,169,248,103,2,169,253,123,191,169,253,3,0,145,244,3,0,170,243,3,1,170, - 248,3,3,42,116,1,0,181,104,162,64,57,136,0,0,52,96,10,64,249,79,251,255,151,127,162,0,57,104,66,0,145,127,14,0,249,31,1,0,249,127,18,0,249,83,0,0,20,136,2,192,57,104,3,0,53,104,14,64,249,168,2,0,181,104,162,64,57,136,0,0,52,96,10,64,249,65,251, - 255,151,127,162,0,57,64,0,128,210,116,66,0,145,149,4,0,148,31,0,0,241,128,2,0,249,136,1,128,82,0,1,159,26,31,0,0,113,233,23,159,154,31,0,0,113,232,23,159,26,104,162,0,57,105,14,0,249,96,0,0,52,60,0,0,20,116,66,0,145,136,2,64,249,31,1,0,121,227, - 255,255,23,5,0,128,82,4,0,128,210,3,0,128,18,226,3,20,170,33,1,128,82,224,3,24,42,204,2,0,148,246,3,0,42,217,126,64,147,200,126,64,147,40,1,0,181,105,0,0,208,40,225,45,145,9,253,223,200,32,1,63,214,127,254,255,151,102,254,255,151,0,0,64,185, - 37,0,0,20,105,14,64,249,31,1,9,235,169,2,0,84,104,162,64,57,136,0,0,52,96,10,64,249,19,251,255,151,127,162,0,57,192,126,127,147,117,66,0,145,103,4,0,148,31,0,0,241,160,2,0,249,136,1,128,82,0,1,159,26,31,0,0,113,41,3,159,154,31,0,0,113,232,23, - 159,26,104,162,0,57,105,14,0,249,96,0,0,52,14,0,0,20,117,66,0,145,164,2,64,249,229,3,9,42,3,0,128,18,226,3,20,170,33,1,128,82,224,3,24,42,161,2,0,148,8,124,64,147,8,251,255,180,8,5,0,209,104,18,0,249,0,0,128,82,253,123,193,168,248,103,66,169, - 245,91,65,169,243,83,195,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,189,169,245,91,1,169,248,103,2,169,253,123,191,169,253,3,0,145,244,3,0,170,243,3,1,170,248,3,3,42,116,1,0,181,104,162,64,57,136,0,0,52,96,10,64,249,225,250,255, - 151,127,162,0,57,104,66,0,145,127,14,0,249,31,1,0,249,127,18,0,249,89,0,0,20,136,2,64,121,104,3,0,53,104,14,64,249,168,2,0,181,104,162,64,57,136,0,0,52,96,10,64,249,211,250,255,151,127,162,0,57,32,0,128,210,116,66,0,145,39,4,0,148,31,0,0,241, - 128,2,0,249,136,1,128,82,0,1,159,26,31,0,0,113,233,23,159,154,31,0,0,113,232,23,159,26,104,162,0,57,105,14,0,249,96,0,0,52,66,0,0,20,116,66,0,145,136,2,64,249,31,1,0,57,227,255,255,23,7,0,128,210,6,0,128,210,5,0,128,82,4,0,128,210,3,0,128,18, - 226,3,20,170,1,0,128,82,224,3,24,42,144,2,0,148,25,124,64,147,22,124,64,147,54,1,0,181,104,0,0,208,8,225,45,145,9,253,223,200,32,1,63,214,16,254,255,151,247,253,255,151,0,0,64,185,42,0,0,20,105,14,64,249,223,2,9,235,169,2,0,84,104,162,64,57, - 136,0,0,52,96,10,64,249,164,250,255,151,127,162,0,57,224,3,22,170,117,66,0,145,248,3,0,148,31,0,0,241,160,2,0,249,136,1,128,82,0,1,159,26,31,0,0,113,41,3,159,154,31,0,0,113,232,23,159,26,104,162,0,57,105,14,0,249,96,0,0,52,19,0,0,20,117,66,0, - 145,164,2,64,249,229,3,9,42,7,0,128,210,6,0,128,210,3,0,128,18,226,3,20,170,1,0,128,82,224,3,24,42,100,2,0,148,8,124,64,147,136,0,0,181,105,0,0,208,40,225,45,145,213,255,255,23,8,5,0,209,104,18,0,249,0,0,128,82,253,123,193,168,248,103,66,169, - 245,91,65,169,243,83,195,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,188,169,245,91,1,169,247,99,2,169,249,27,0,249,253,123,191,169,253,3,0,145,246,3,0,170,200,2,192,57,233,3,22,170,249,3,1,170,245,3,2,170,244,3,3,170,104,0,0,52, - 40,29,192,56,232,255,255,53,40,1,22,203,23,5,0,145,232,3,53,170,255,2,8,235,41,1,0,84,128,1,128,82,253,123,193,168,249,27,64,249,247,99,66,169,245,91,65,169,243,83,196,168,255,35,3,213,192,3,95,214,232,2,21,139,24,5,0,145,224,3,24,170,33,0,128, - 210,253,253,255,151,243,3,0,170,245,0,0,180,227,3,21,170,226,3,25,170,225,3,24,170,224,3,19,170,36,13,0,148,224,6,0,53,1,3,21,203,227,3,23,170,226,3,22,170,96,2,21,139,30,13,0,148,32,6,0,53,136,166,64,169,31,1,9,235,129,4,0,84,128,2,64,249,160, - 1,0,181,1,1,128,210,128,0,128,210,231,253,255,151,128,2,0,249,0,0,128,210,64,250,255,151,136,2,64,249,8,2,0,180,136,6,0,249,8,129,0,145,136,10,0,249,22,0,0,20,40,1,0,203,21,253,67,147,10,0,240,146,191,2,10,235,232,0,0,84,2,1,128,210,161,250, - 127,211,174,1,0,148,224,0,0,181,0,0,128,210,47,250,255,151,224,3,19,170,148,1,128,82,44,250,255,151,13,0,0,20,8,12,21,139,128,34,0,169,9,16,21,139,0,0,128,210,137,10,0,249,37,250,255,151,136,6,64,249,19,1,0,249,137,6,64,249,42,33,0,145,138,6, - 0,249,20,0,128,82,0,0,128,210,29,250,255,151,224,3,20,42,183,255,255,23,4,0,128,210,3,0,128,82,2,0,128,210,1,0,128,210,0,0,128,210,127,250,255,151,0,0,62,212,0,0,0,0,127,35,3,213,253,123,187,169,243,83,1,169,245,91,2,169,247,99,3,169,249,35, - 0,249,253,3,0,145,153,200,255,151,255,67,11,209,244,3,0,170,224,3,1,170,245,3,2,170,83,23,0,88,11,0,0,20,8,0,192,57,8,189,0,81,9,29,0,83,63,181,0,113,104,0,0,84,105,38,200,154,201,0,0,55,225,3,0,170,224,3,20,170,57,13,0,148,31,0,20,235,161,254, - 255,84,9,0,192,57,63,233,0,113,65,1,0,84,136,6,0,145,31,0,8,235,224,0,0,84,227,3,21,170,2,0,128,210,1,0,128,210,224,3,20,170,116,255,255,151,152,0,0,20,40,189,0,81,9,29,0,83,63,181,0,113,168,0,0,84,105,38,200,154,105,0,0,54,42,0,128,82,2,0,0, - 20,10,0,128,82,8,0,20,203,255,255,0,169,95,1,0,113,255,255,1,169,224,35,0,145,255,23,0,249,225,3,20,170,255,195,0,57,249,7,136,154,176,253,255,151,104,0,0,176,8,33,43,145,9,253,223,200,5,0,128,82,4,0,128,210,3,0,128,82,226,35,2,145,1,0,128,82, - 32,1,63,214,243,3,0,170,127,6,0,177,161,1,0,84,227,3,21,170,2,0,128,210,1,0,128,210,224,3,20,170,79,255,255,151,232,195,64,57,243,3,0,42,104,0,0,52,224,15,64,249,196,249,255,151,224,3,19,42,109,0,0,20,168,38,64,169,41,1,8,203,56,253,67,147,1, - 0,128,210,255,255,5,169,224,227,0,145,255,255,6,169,255,63,0,249,255,3,2,57,238,231,255,151,232,35,64,249,41,189,159,82,8,13,64,185,31,1,9,107,33,1,0,84,232,67,65,57,168,0,0,52,234,31,64,249,72,169,67,185,9,121,30,18,73,169,3,185,35,189,159, - 82,17,0,0,20,112,242,255,151,232,67,65,57,0,1,0,53,168,0,0,52,234,31,64,249,72,169,67,185,9,121,30,18,73,169,3,185,35,0,128,82,7,0,0,20,168,0,0,52,234,31,64,249,72,169,67,185,9,121,30,18,73,169,3,185,3,0,128,82,226,3,0,145,225,99,1,145,224,211, - 2,145,169,254,255,151,246,55,64,249,31,0,0,113,224,19,150,154,8,0,192,57,31,185,0,113,225,0,0,84,8,4,192,57,104,1,0,52,31,185,0,113,97,0,0,84,8,8,192,57,232,0,0,52,227,3,21,170,226,3,25,170,225,3,20,170,13,255,255,151,247,3,0,42,87,4,0,53,232, - 3,66,57,104,0,0,52,224,3,22,170,129,249,255,151,104,0,0,176,8,65,43,145,9,253,223,200,225,35,2,145,224,3,19,170,32,1,63,214,128,247,255,53,170,34,64,169,9,1,10,203,43,253,67,147,31,3,11,235,224,0,0,84,8,0,0,144,3,65,15,145,64,13,24,139,97,1, - 24,203,2,1,128,210,61,11,0,148,104,0,0,176,8,1,43,145,9,253,223,200,224,3,19,170,32,1,63,214,232,195,64,57,104,0,0,52,224,15,64,249,102,249,255,151,0,0,128,82,15,0,0,20,232,3,66,57,104,0,0,52,224,3,22,170,96,249,255,151,104,0,0,176,8,1,43,145, - 9,253,223,200,224,3,19,170,32,1,63,214,232,195,64,57,104,0,0,52,224,15,64,249,87,249,255,151,224,3,23,42,255,67,11,145,234,199,255,151,249,35,64,249,247,99,67,169,245,91,66,169,243,83,65,169,253,123,197,168,255,35,3,213,192,3,95,214,1,8,0,0, - 0,32,0,0,31,0,1,235,98,0,0,84,0,0,128,18,3,0,0,20,31,0,1,235,224,151,159,26,192,3,95,214,0,0,0,0,127,35,3,213,253,123,190,169,243,83,1,169,253,3,0,145,204,199,255,151,255,131,9,209,104,0,0,176,8,1,46,145,9,253,223,200,243,3,1,170,84,124,64,211, - 162,32,128,82,225,99,1,145,32,1,63,214,0,1,0,53,104,0,0,176,8,225,45,145,9,253,223,200,32,1,63,214,145,252,255,151,0,0,128,82,42,0,0,20,1,0,128,210,243,211,2,169,224,35,0,145,243,211,3,169,255,39,0,249,255,67,1,57,92,231,255,151,232,11,64,249, - 41,189,159,82,8,13,64,185,31,1,9,107,33,1,0,84,232,131,64,57,168,0,0,52,234,7,64,249,72,169,67,185,9,121,30,18,73,169,3,185,35,189,159,82,17,0,0,20,222,241,255,151,232,131,64,57,0,1,0,53,168,0,0,52,234,7,64,249,72,169,67,185,9,121,30,18,73,169, - 3,185,35,0,128,82,7,0,0,20,168,0,0,52,234,7,64,249,72,169,67,185,9,121,30,18,73,169,3,185,3,0,128,82,226,3,0,145,225,163,0,145,224,99,1,145,9,0,0,148,224,39,64,249,255,131,9,145,152,199,255,151,243,83,65,169,253,123,194,168,255,35,3,213,192, - 3,95,214,0,0,0,0,127,35,3,213,243,83,190,169,246,11,0,249,253,123,191,169,253,3,0,145,244,3,0,170,243,3,1,170,246,3,3,42,244,0,0,181,104,162,64,57,72,0,0,52,127,162,0,57,127,126,1,169,127,18,0,249,56,0,0,20,136,2,64,121,8,2,0,53,104,14,64,249, - 104,1,0,181,104,162,64,57,72,0,0,52,127,162,0,57,48,252,255,151,72,4,128,82,8,0,0,185,64,4,128,82,127,162,0,57,127,14,0,249,43,0,0,20,104,10,64,249,31,1,0,57,238,255,255,23,7,0,128,210,6,0,128,210,5,0,128,82,4,0,128,210,3,0,128,18,226,3,20,170, - 1,0,128,82,224,3,22,42,174,0,0,148,9,124,64,147,41,1,0,181,104,0,0,176,8,225,45,145,9,253,223,200,32,1,63,214,47,252,255,151,22,252,255,151,0,0,64,185,21,0,0,20,104,14,64,249,63,1,8,235,200,251,255,84,100,10,64,249,229,3,8,42,7,0,128,210,6,0, - 128,210,3,0,128,18,226,3,20,170,1,0,128,82,224,3,22,42,152,0,0,148,8,124,64,147,136,0,0,181,105,0,0,176,40,225,45,145,234,255,255,23,8,5,0,209,104,18,0,249,0,0,128,82,253,123,193,168,246,11,64,249,243,83,194,168,255,35,3,213,192,3,95,214,225, - 3,0,42,0,0,128,210,131,0,128,82,2,0,128,82,2,0,0,20,0,0,0,0,127,35,3,213,243,83,190,169,245,11,0,249,253,123,189,169,253,3,0,145,243,3,1,42,225,3,0,170,224,67,0,145,245,3,2,42,244,3,3,42,214,230,255,151,232,19,64,249,106,30,0,83,8,193,42,139, - 9,101,64,57,63,1,20,106,33,1,0,84,213,0,0,52,232,15,64,249,8,1,64,249,9,217,106,120,63,1,21,106,97,0,0,84,0,0,128,82,2,0,0,20,32,0,128,82,232,163,64,57,168,0,0,52,234,11,64,249,72,169,67,185,9,121,30,18,73,169,3,185,253,123,195,168,245,11,64, - 249,243,83,194,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,190,169,245,91,1,169,253,123,191,169,253,3,0,145,244,3,0,170,245,3,1,170,246,3,2,170,85,1,0,180,232,3,128,146,8,9,213,154,31,1,22,235,194,0,0,84,193,251,255,151,136,1,128, - 82,8,0,0,185,0,0,128,210,20,0,0,20,180,0,0,180,224,3,20,170,224,11,0,148,243,3,0,170,2,0,0,20,19,0,128,210,181,126,22,155,224,3,20,170,225,3,21,170,239,11,0,148,244,3,0,170,159,2,0,241,110,18,85,250,162,0,0,84,162,2,19,203,1,0,128,82,128,2,19, - 139,131,200,255,151,224,3,20,170,253,123,193,168,245,91,65,169,243,83,194,168,255,35,3,213,192,3,95,214,136,213,155,82,31,0,8,107,200,3,0,84,160,1,0,84,104,134,152,82,31,0,8,107,232,1,0,84,136,133,152,82,8,0,8,75,31,29,0,113,136,0,0,84,233,20, - 128,82,40,37,200,26,104,0,0,55,31,168,0,113,65,0,0,84,1,0,128,82,104,0,0,176,8,33,49,145,9,253,223,200,32,1,31,214,168,134,152,82,31,0,8,107,32,255,255,84,8,211,154,82,31,0,8,107,224,2,0,84,72,213,155,82,8,0,8,75,31,5,0,113,73,254,255,84,242, - 255,255,23,40,214,155,82,31,0,8,107,168,0,0,84,168,213,155,82,8,0,8,75,31,17,0,113,248,255,255,23,72,214,155,82,8,0,8,75,31,5,0,113,201,252,255,84,8,189,159,82,31,0,8,107,96,252,255,84,40,189,159,82,31,0,8,107,33,252,255,84,33,0,29,18,223,255, - 255,23,0,0,0,0,10,189,159,82,8,0,10,75,31,5,0,113,136,213,155,82,233,135,159,26,31,0,8,107,168,4,0,84,224,2,0,84,104,134,152,82,31,0,8,107,72,1,0,84,136,133,152,82,8,0,8,75,31,29,0,113,136,0,0,84,234,20,128,82,72,37,200,26,168,1,0,55,31,168, - 0,113,39,0,0,20,168,134,152,82,31,0,8,107,0,1,0,84,8,211,154,82,31,0,8,107,160,0,0,84,72,213,155,82,8,0,8,75,31,5,0,113,200,3,0,84,1,0,128,82,63,1,0,113,232,19,135,154,63,1,0,113,230,19,134,154,105,0,0,52,71,0,0,180,255,0,0,185,231,3,8,170,104, - 0,0,176,8,65,51,145,9,253,223,200,32,1,31,214,40,214,155,82,31,0,8,107,168,0,0,84,168,213,155,82,8,0,8,75,31,17,0,113,236,255,255,23,72,214,155,82,8,0,8,75,31,5,0,113,41,253,255,84,31,0,10,107,224,252,255,84,40,189,159,82,31,0,8,107,128,252, - 255,84,33,120,24,18,227,255,255,23,0,0,0,0,127,35,3,213,243,83,190,169,245,91,1,169,253,123,191,169,253,3,0,145,104,0,0,176,8,97,45,145,9,253,223,200,32,1,63,214,243,3,0,170,115,0,0,181,0,0,128,210,63,0,0,20,104,2,64,121,235,3,19,170,104,1,0, - 52,233,3,11,170,42,9,0,145,40,45,192,120,200,255,255,53,72,1,11,203,9,253,65,147,42,5,0,145,107,5,10,139,104,1,64,121,232,254,255,53,104,1,19,203,9,9,0,145,54,253,65,147,227,3,22,42,7,0,128,210,6,0,128,210,5,0,128,82,4,0,128,210,226,3,19,170, - 1,0,128,82,0,0,128,82,157,255,255,151,21,124,64,147,245,0,0,181,104,0,0,176,8,1,44,145,9,253,223,200,224,3,19,170,32,1,63,214,222,255,255,23,224,3,21,170,17,1,0,148,244,3,0,170,148,0,0,181,0,0,128,210,181,247,255,151,244,255,255,23,229,3,21, - 42,7,0,128,210,6,0,128,210,228,3,20,170,227,3,22,42,226,3,19,170,1,0,128,82,0,0,128,82,133,255,255,151,160,0,0,53,224,3,20,170,168,247,255,151,20,0,128,210,3,0,0,20,0,0,128,210,164,247,255,151,104,0,0,176,8,1,44,145,9,253,223,200,224,3,19,170, - 32,1,63,214,224,3,20,170,253,123,193,168,245,91,65,169,243,83,194,168,255,35,3,213,192,3,95,214,127,35,3,213,253,123,188,169,253,3,0,145,8,60,0,83,233,255,159,82,232,35,0,121,31,1,9,107,97,0,0,84,224,255,159,82,54,0,0,20,224,99,0,145,195,229, - 255,151,236,19,64,249,41,189,159,82,136,13,64,185,31,1,9,107,225,1,0,84,235,35,64,121,127,1,2,113,98,3,0,84,72,0,0,144,8,1,34,145,9,9,0,145,109,29,64,211,42,121,109,120,138,0,0,54,136,137,64,249,0,105,109,56,29,0,0,20,96,29,0,83,27,0,0,20,224, - 35,64,121,31,0,4,113,98,1,0,84,72,0,0,144,8,9,34,145,11,28,64,211,9,121,107,120,137,0,0,54,136,137,64,249,0,105,107,56,16,0,0,20,0,28,0,83,14,0,0,20,136,157,64,249,136,1,0,180,128,157,64,249,37,0,128,82,228,75,0,145,35,0,128,82,226,67,0,145, - 1,32,128,82,30,11,0,148,96,0,0,53,224,35,64,121,2,0,0,20,224,39,64,121,232,195,64,57,168,0,0,52,234,15,64,249,72,169,67,185,9,121,30,18,73,169,3,185,253,123,196,168,255,35,3,213,192,3,95,214,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0, - 145,243,3,1,170,136,0,0,176,8,141,67,249,105,2,64,249,63,1,8,235,0,1,0,84,136,0,0,144,8,13,72,185,9,168,67,185,63,1,8,106,97,0,0,84,13,2,0,148,96,2,0,249,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,15,31,248, - 253,123,191,169,253,3,0,145,243,3,1,170,136,0,0,176,8,109,67,249,105,2,64,249,63,1,8,235,0,1,0,84,136,0,0,144,8,13,72,185,9,168,67,185,63,1,8,106,97,0,0,84,147,244,255,151,96,2,0,249,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95,214,0,0, - 0,0,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,136,0,0,176,8,97,28,145,243,3,1,170,10,121,98,248,105,2,64,249,63,1,10,235,0,1,0,84,136,0,0,144,8,13,72,185,9,168,67,185,63,1,8,106,97,0,0,84,224,1,0,148,96,2,0,249,253,123,193,168,243, - 7,65,248,255,35,3,213,192,3,95,214,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,136,0,0,176,8,97,27,145,243,3,1,170,10,121,98,248,105,2,64,249,63,1,10,235,0,1,0,84,136,0,0,144,8,13,72,185,9,168,67,185,63,1,8,106,97,0,0,84,102,244,255, - 151,96,2,0,249,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95,214,136,0,0,176,0,1,29,145,33,0,128,82,133,198,255,23,127,35,3,213,253,123,190,169,253,3,0,145,227,83,0,145,226,67,0,145,225,99,0,145,224,67,0,145,136,0,128,82,232,163,2,41,5, - 0,0,148,253,123,194,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,190,169,245,91,1,169,253,123,189,169,253,3,0,145,244,3,3,170,180,19,0,249,32,0,64,185,40,241,255,151,191,67,0,57,136,0,0,176,21,97,28,145,243,3,21,170,150,0,0,144, - 179,15,0,249,168,34,0,145,127,2,8,235,96,1,0,84,201,2,22,145,104,2,64,249,31,1,9,235,160,0,0,84,193,2,22,145,224,3,19,170,184,1,0,148,96,2,0,249,115,34,0,145,243,255,255,23,128,2,64,185,29,241,255,151,253,123,195,168,245,91,65,169,243,83,194, - 168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,15,31,248,253,123,190,169,253,3,0,145,9,60,0,83,232,255,159,82,63,1,8,107,51,60,0,83,96,2,0,84,63,1,4,113,194,0,0,84,136,0,0,144,8,1,68,249,9,121,105,120,32,1,19,10,13,0,0,20,227,67,0,145, - 233,39,0,121,34,0,128,82,255,35,0,121,225,75,0,145,32,0,128,82,122,11,0,148,128,0,0,52,232,35,64,121,0,1,19,10,2,0,0,20,0,0,128,82,253,123,194,168,243,7,65,248,255,35,3,213,192,3,95,214,127,35,3,213,243,83,190,169,245,11,0,249,253,123,191,169, - 253,3,0,145,31,128,0,177,104,3,0,84,31,0,0,241,40,0,128,210,19,1,128,154,104,0,0,176,8,97,47,145,149,0,0,176,160,70,65,249,9,253,223,200,226,3,19,170,1,0,128,82,32,1,63,214,96,2,0,181,104,0,0,176,20,97,47,145,93,8,0,148,96,1,0,52,224,3,19,170, - 164,223,255,151,0,1,0,52,160,70,65,249,226,3,19,170,136,254,223,200,1,0,128,82,0,1,63,214,192,254,255,180,5,0,0,20,209,249,255,151,136,1,128,82,8,0,0,185,0,0,128,210,253,123,193,168,245,11,64,249,243,83,194,168,255,35,3,213,192,3,95,214,127, - 35,3,213,243,83,191,169,253,123,191,169,253,3,0,145,243,3,0,170,244,3,2,170,202,218,255,151,104,6,64,185,201,12,128,82,31,1,9,106,193,0,0,84,104,2,64,185,201,1,0,24,31,1,9,107,0,8,65,122,160,0,0,84,253,123,193,168,243,83,193,168,255,35,3,213, - 192,3,95,214,62,232,255,151,19,16,0,249,60,232,255,151,20,20,0,249,102,231,255,151,0,0,62,212,99,115,109,224,0,0,0,0,6,250,255,23,31,32,3,213,31,32,3,213,0,0,0,0,104,0,0,176,9,81,66,249,170,255,255,240,72,129,37,145,63,1,8,235,96,1,0,84,233, - 3,18,170,10,128,64,249,40,9,64,249,95,1,8,235,131,0,0,84,40,5,64,249,95,1,8,235,105,0,0,84,160,1,128,82,96,0,62,212,192,3,95,214,0,0,0,0,98,0,0,181,0,0,128,82,15,0,0,20,73,4,0,209,73,1,0,180,10,0,64,121,10,1,0,52,40,0,64,121,95,1,8,107,161,0, - 0,84,0,8,0,145,33,8,0,145,41,5,0,209,9,255,255,181,9,0,64,121,40,0,64,121,32,1,8,75,192,3,95,214,127,35,3,213,243,83,189,169,245,91,1,169,247,99,2,169,253,123,191,169,253,3,0,145,245,3,0,170,149,2,0,180,72,0,0,176,23,193,19,145,19,0,128,82,116, - 28,128,82,136,2,19,11,9,125,72,11,162,10,128,210,224,3,21,170,54,125,1,19,216,126,124,147,1,107,119,248,79,11,0,148,192,1,0,52,96,0,248,54,212,6,0,81,2,0,0,20,211,6,0,17,127,2,20,107,77,254,255,84,0,0,128,82,253,123,193,168,247,99,66,169,245, - 91,65,169,243,83,195,168,255,35,3,213,192,3,95,214,232,34,0,145,9,107,104,184,233,254,255,55,40,125,64,147,31,145,3,241,130,254,255,84,40,0,0,240,8,65,42,145,41,125,124,147,32,105,104,184,240,255,255,23,0,0,0,0,127,35,3,213,243,83,190,169,245, - 91,1,169,253,123,191,169,253,3,0,145,243,3,0,170,96,66,0,145,103,197,255,151,96,114,64,249,64,0,0,180,100,197,255,151,96,122,64,249,64,0,0,180,97,197,255,151,96,118,64,249,64,0,0,180,94,197,255,151,96,130,64,249,64,0,0,180,91,197,255,151,104, - 0,0,240,22,161,27,145,116,226,0,145,213,0,128,82,136,2,95,248,31,1,22,235,128,0,0,84,128,2,64,249,64,0,0,180,81,197,255,151,136,130,94,248,136,0,0,180,128,130,95,248,64,0,0,180,76,197,255,151,148,130,0,145,181,6,0,81,117,254,255,53,105,146,64, - 249,233,0,0,180,40,0,0,208,8,65,42,145,63,1,8,235,96,0,0,84,32,113,5,145,65,197,255,151,253,123,193,168,245,91,65,169,243,83,194,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,190,169,245,91,1,169,253,123,191,169,253,3,0,145,243,3, - 0,170,51,5,0,180,96,66,0,145,106,197,255,151,96,114,64,249,64,0,0,180,103,197,255,151,96,122,64,249,64,0,0,180,100,197,255,151,96,118,64,249,64,0,0,180,97,197,255,151,96,130,64,249,64,0,0,180,94,197,255,151,104,0,0,240,22,161,27,145,116,226, - 0,145,213,0,128,82,136,2,95,248,31,1,22,235,128,0,0,84,128,2,64,249,64,0,0,180,84,197,255,151,136,130,94,248,136,0,0,180,128,130,95,248,64,0,0,180,79,197,255,151,148,130,0,145,181,6,0,81,117,254,255,53,105,146,64,249,233,0,0,180,40,0,0,208,8, - 65,42,145,63,1,8,235,96,0,0,84,32,113,5,145,68,197,255,151,253,123,193,168,245,91,65,169,243,83,194,168,255,35,3,213,192,3,95,214,127,35,3,213,243,83,189,169,245,91,1,169,247,19,0,249,253,123,191,169,253,3,0,145,243,3,0,170,105,126,64,249,105, - 3,0,180,104,0,0,240,8,65,32,145,63,1,8,235,224,2,0,84,104,114,64,249,168,2,0,180,8,1,64,185,104,2,0,53,96,122,64,249,192,0,0,180,8,0,64,185,136,0,0,53,143,245,255,151,96,126,64,249,109,9,0,148,96,118,64,249,192,0,0,180,8,0,64,185,136,0,0,53, - 136,245,255,151,96,126,64,249,180,9,0,148,96,114,64,249,132,245,255,151,96,126,64,249,130,245,255,151,104,130,64,249,200,1,0,180,8,1,64,185,136,1,0,53,104,134,64,249,0,249,3,209,123,245,255,151,104,138,64,249,0,1,2,209,120,245,255,151,104,142, - 64,249,0,1,2,209,117,245,255,151,96,130,64,249,115,245,255,151,96,146,64,249,35,0,0,148,104,0,0,240,23,161,27,145,118,162,4,145,116,226,0,145,213,0,128,82,136,2,95,248,31,1,23,235,0,1,0,84,128,2,64,249,192,0,0,180,8,0,64,185,136,0,0,53,100,245, - 255,151,192,2,64,249,98,245,255,151,136,130,94,248,200,0,0,180,128,130,95,248,128,0,0,180,8,0,64,185,72,0,0,53,91,245,255,151,214,34,0,145,148,130,0,145,181,6,0,81,149,253,255,53,224,3,19,170,85,245,255,151,253,123,193,168,247,19,64,249,245, - 91,65,169,243,83,195,168,255,35,3,213,192,3,95,214,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,243,3,0,170,115,1,0,180,40,0,0,208,8,65,42,145,127,2,8,235,224,0,0,84,104,94,65,185,191,59,3,213,136,0,0,53,149,9,0,148,224,3,19,170,63, - 245,255,151,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95,214,127,35,3,213,243,83,191,169,253,123,191,169,253,3,0,145,204,239,255,151,244,3,0,170,137,170,67,185,104,0,0,240,8,13,72,185,63,1,8,106,96,0,0,84,147,74,64,249,83,1,0,181,128,0, - 128,82,112,239,255,151,136,0,0,144,1,141,67,249,128,66,2,145,12,0,0,148,243,3,0,170,128,0,128,82,115,239,255,151,211,0,0,180,224,3,19,170,253,123,193,168,243,83,193,168,255,35,3,213,192,3,95,214,178,230,255,151,0,0,62,212,127,35,3,213,243,83, - 191,169,253,123,191,169,253,3,0,145,243,3,1,170,211,2,0,180,160,2,0,180,20,0,64,249,159,2,19,235,97,0,0,84,224,3,19,170,17,0,0,20,19,0,0,249,224,3,19,170,2,255,255,151,116,255,255,180,224,3,20,170,51,255,255,151,136,18,64,185,232,254,255,53, - 104,0,0,240,8,1,22,145,159,2,8,235,96,254,255,84,224,3,20,170,95,255,255,151,240,255,255,23,0,0,128,210,253,123,193,168,243,83,193,168,255,35,3,213,192,3,95,214,127,35,3,213,253,123,191,169,253,3,0,145,31,8,0,49,225,0,0,84,77,248,255,151,31, - 0,0,185,63,248,255,151,40,1,128,82,8,0,0,185,24,0,0,20,32,2,248,55,136,0,0,144,8,145,70,185,31,0,8,107,162,1,0,84,9,124,64,147,136,0,0,144,8,65,10,145,42,253,70,211,41,21,64,146,8,121,106,248,11,9,128,210,43,33,11,155,105,225,64,57,105,0,0,54, - 96,21,64,249,8,0,0,20,54,248,255,151,31,0,0,185,40,248,255,151,40,1,128,82,8,0,0,185,63,245,255,151,0,0,128,146,253,123,193,168,255,35,3,213,192,3,95,214,127,35,3,213,243,83,190,169,245,91,1,169,253,123,191,169,253,3,0,145,243,3,0,42,115,5,248, - 55,136,0,0,144,8,145,70,185,127,2,8,107,226,4,0,84,104,126,64,147,20,253,70,211,137,0,0,144,53,65,10,145,8,21,64,146,10,9,128,210,22,125,10,155,168,122,116,248,202,2,8,139,73,225,64,57,137,3,0,54,72,21,64,249,31,5,0,177,32,3,0,84,249,9,0,148, - 31,4,0,113,1,2,0,84,51,1,0,52,127,6,0,113,160,0,0,84,127,10,0,113,97,1,0,84,96,1,128,18,4,0,0,20,64,1,128,18,2,0,0,20,32,1,128,18,104,0,0,144,8,129,50,145,9,253,223,200,1,0,128,210,32,1,63,214,168,122,116,248,10,0,128,146,0,0,128,82,9,1,22,139, - 42,21,0,249,7,0,0,20,239,247,255,151,40,1,128,82,8,0,0,185,248,247,255,151,31,0,0,185,0,0,128,18,253,123,193,168,245,91,65,169,243,83,194,168,255,35,3,213,192,3,95,214,127,35,3,213,243,83,188,169,245,91,1,169,247,99,2,169,249,27,0,249,253,123, - 191,169,253,3,0,145,1,9,128,210,0,8,128,210,53,248,255,151,243,3,0,170,115,0,0,181,19,0,128,210,31,0,0,20,8,64,130,210,117,2,8,139,127,2,21,235,96,3,0,84,116,194,0,145,23,0,128,146,88,65,161,82,89,1,128,82,2,0,128,82,1,244,129,82,128,194,0,209, - 150,194,0,209,108,237,255,151,136,54,64,57,151,254,63,169,10,0,128,82,152,10,0,185,153,50,0,57,8,17,29,18,136,54,0,57,200,194,42,139,73,5,0,17,234,3,9,42,31,249,0,57,63,21,0,113,99,255,255,84,148,34,1,145,136,194,0,209,31,1,21,235,97,253,255, - 84,0,0,128,210,109,244,255,151,224,3,19,170,253,123,193,168,249,27,64,249,247,99,66,169,245,91,65,169,243,83,196,168,255,35,3,213,192,3,95,214,127,35,3,213,243,83,190,169,245,91,1,169,253,123,191,169,253,3,0,145,243,3,0,170,19,2,0,180,8,64,130, - 210,117,2,8,139,127,2,21,235,244,3,19,170,32,1,0,84,104,0,0,144,22,129,42,145,200,254,223,200,224,3,20,170,0,1,63,214,148,34,1,145,159,2,21,235,97,255,255,84,224,3,19,170,79,244,255,151,253,123,193,168,245,91,65,169,243,83,194,168,255,35,3,213, - 192,3,95,214,0,0,0,0,127,35,3,213,243,83,189,169,245,91,1,169,247,99,2,169,253,123,190,169,253,3,0,145,245,3,0,42,191,10,64,113,131,1,0,84,137,247,255,151,40,1,128,82,8,0,0,185,160,244,255,151,32,1,128,82,253,123,194,168,247,99,66,169,245,91, - 65,169,243,83,195,168,255,35,3,213,192,3,95,214,20,0,128,82,224,0,128,82,118,238,255,151,19,0,128,210,191,11,0,249,152,0,0,144,151,0,0,144,233,146,70,185,191,2,9,107,43,1,0,84,22,67,10,145,200,122,115,248,72,0,0,180,12,0,0,20,140,255,255,151, - 192,122,51,248,192,0,0,181,148,1,128,82,224,0,128,82,111,238,255,151,224,3,20,42,229,255,255,23,232,146,70,185,9,1,1,17,233,146,6,185,115,6,0,145,179,11,0,249,237,255,255,23,9,124,64,147,136,0,0,144,8,65,10,145,42,253,70,147,41,21,64,146,8,121, - 106,248,11,9,128,210,32,33,11,155,107,0,0,144,105,193,42,145,40,253,223,200,0,1,31,214,9,124,64,147,136,0,0,144,8,65,10,145,42,253,70,147,41,21,64,146,8,121,106,248,11,9,128,210,32,33,11,155,107,0,0,144,105,161,48,145,40,253,223,200,0,1,31,214, - 127,35,3,213,253,123,186,169,243,83,1,169,245,91,2,169,247,99,3,169,249,107,4,169,251,43,0,249,253,3,0,145,134,194,255,151,255,131,0,209,250,3,0,145,248,3,1,42,225,3,0,170,224,3,26,170,246,3,2,170,247,3,3,42,249,3,4,170,244,3,5,42,243,3,6,42, - 35,226,255,151,116,0,0,53,72,7,64,249,20,13,64,185,127,2,0,113,41,1,128,82,40,0,128,82,33,17,136,26,5,0,128,82,4,0,128,210,227,3,23,42,226,3,22,170,224,3,20,42,134,251,255,151,245,3,0,42,117,0,0,53,20,0,128,82,57,0,0,20,168,126,127,147,9,65, - 0,145,63,1,8,235,32,129,159,154,187,187,155,82,96,5,0,180,31,0,16,241,168,1,0,84,8,60,0,145,31,1,0,235,76,0,0,84,232,223,124,178,15,253,68,211,100,197,255,151,255,115,47,203,243,3,0,145,51,1,0,180,136,153,153,82,104,2,0,185,5,0,0,20,31,253,255, - 151,243,3,0,170,115,0,0,180,123,2,0,185,115,66,0,145,19,3,0,180,162,126,127,147,1,0,128,82,224,3,19,170,224,195,255,151,229,3,21,42,228,3,19,170,227,3,23,42,226,3,22,170,33,0,128,82,224,3,20,42,93,251,255,151,128,1,0,52,104,0,0,144,8,1,47,145, - 9,253,223,200,226,3,0,42,227,3,25,170,225,3,19,170,224,3,24,42,32,1,63,214,244,3,0,42,4,0,0,20,19,0,128,210,20,0,128,82,211,0,0,180,104,2,95,184,31,1,27,107,97,0,0,84,96,66,0,209,164,243,255,151,72,99,64,57,168,0,0,52,74,3,64,249,72,169,67,185, - 9,121,30,18,73,169,3,185,224,3,20,42,95,3,0,145,255,131,0,145,48,194,255,151,251,43,64,249,249,107,68,169,247,99,67,169,245,91,66,169,243,83,65,169,253,123,198,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,188,169,245,91,1,169,247, - 99,2,169,249,27,0,249,253,123,189,169,253,3,0,145,255,67,0,209,249,3,1,170,225,3,0,170,224,131,0,145,248,3,2,42,247,3,3,170,246,3,4,42,245,3,5,170,244,3,6,42,243,3,7,42,181,225,255,151,232,131,64,185,231,3,19,42,230,3,20,42,229,3,21,170,228, - 3,22,42,232,3,0,185,227,3,23,170,226,3,24,42,225,3,25,170,224,163,0,145,16,0,0,148,232,227,64,57,168,0,0,52,234,19,64,249,72,169,67,185,9,121,30,18,73,169,3,185,255,67,0,145,253,123,195,168,249,27,64,249,247,99,66,169,245,91,65,169,243,83,196, - 168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,186,169,243,83,1,169,245,91,2,169,247,99,3,169,249,107,4,169,251,43,0,249,253,3,0,145,234,193,255,151,255,67,0,209,250,67,0,145,244,3,4,42,69,3,0,249,159,2,0,113,243,3,0,170,251,3,1, - 170,249,3,2,42,245,3,3,170,246,3,6,42,247,3,7,42,237,0,0,84,129,126,64,147,224,3,21,170,141,8,0,148,31,0,20,107,20,4,0,17,20,160,148,26,119,0,0,53,104,2,64,249,23,13,64,185,72,115,64,185,42,1,128,82,41,0,128,82,5,0,128,82,4,0,128,210,31,1,0, - 113,65,17,137,26,227,3,20,42,226,3,21,170,224,3,23,42,226,250,255,151,248,3,0,42,120,0,0,53,0,0,128,82,147,0,0,20,8,127,127,147,9,65,0,145,63,1,8,235,32,129,159,154,128,16,0,180,137,153,153,82,31,0,16,241,136,1,0,84,8,60,0,145,31,1,0,235,76, - 0,0,84,232,223,124,178,15,253,68,211,192,196,255,151,255,115,47,203,243,67,0,145,51,1,0,180,105,2,0,185,6,0,0,20,124,252,255,151,243,3,0,170,147,0,0,180,168,187,155,82,104,2,0,185,115,66,0,145,19,14,0,180,229,3,24,42,228,3,19,170,227,3,20,42, - 226,3,21,170,33,0,128,82,224,3,23,42,189,250,255,151,0,13,0,52,7,0,128,210,255,3,0,249,6,0,128,210,5,0,128,82,4,0,128,210,227,3,24,42,226,3,19,170,225,3,25,42,224,3,27,170,28,236,255,151,245,3,0,42,149,11,0,52,57,2,80,54,150,11,0,52,191,2,22, - 107,12,11,0,84,68,3,64,249,7,0,128,210,6,0,128,210,255,3,0,249,229,3,22,42,227,3,24,42,226,3,19,170,225,3,25,42,224,3,27,170,12,236,255,151,245,3,0,42,213,9,0,53,75,0,0,20,168,126,127,147,9,65,0,145,63,1,8,235,32,129,159,154,32,7,0,180,31,0, - 16,241,136,1,0,84,8,60,0,145,31,1,0,235,76,0,0,84,232,223,124,178,15,253,68,211,130,196,255,151,255,115,47,203,244,67,0,145,52,1,0,180,136,153,153,82,5,0,0,20,62,252,255,151,244,3,0,170,148,0,0,180,168,187,155,82,136,2,0,185,148,66,0,145,212, - 4,0,180,7,0,128,210,255,3,0,249,6,0,128,210,229,3,21,42,228,3,20,170,227,3,24,42,226,3,19,170,225,3,25,42,224,3,27,170,230,235,255,151,96,3,0,52,7,0,128,210,6,0,128,210,227,3,21,42,226,3,20,170,1,0,128,82,224,3,23,42,246,0,0,53,5,0,128,82,4, - 0,128,210,165,250,255,151,245,3,0,42,245,0,0,53,14,0,0,20,68,3,64,249,229,3,22,42,159,250,255,151,245,3,0,42,85,1,0,52,136,2,95,184,182,187,155,82,31,1,22,107,129,2,0,84,128,66,0,209,189,242,255,151,17,0,0,20,20,0,128,210,20,1,0,180,136,2,95, - 184,182,187,155,82,31,1,22,107,161,0,0,84,128,66,0,209,180,242,255,151,2,0,0,20,182,187,155,82,21,0,128,82,5,0,0,20,19,0,128,210,21,0,128,82,243,0,0,180,182,187,155,82,104,2,95,184,31,1,22,107,97,0,0,84,96,66,0,209,167,242,255,151,224,3,21,42, - 95,67,0,209,255,67,0,145,57,193,255,151,251,43,64,249,249,107,68,169,247,99,67,169,245,91,66,169,243,83,65,169,253,123,198,168,255,35,3,213,192,3,95,214,127,35,3,213,253,123,191,169,253,3,0,145,5,240,255,151,8,28,0,83,31,1,0,113,224,23,159,26, - 253,123,193,168,255,35,3,213,192,3,95,214,127,35,3,213,253,123,189,169,253,3,0,145,224,23,0,185,31,8,0,49,161,0,0,84,212,245,255,151,40,1,128,82,8,0,0,185,29,0,0,20,0,3,248,55,136,0,0,144,8,145,70,185,31,0,8,107,130,2,0,84,9,124,64,147,136,0, - 0,144,8,65,10,145,42,253,70,147,41,21,64,146,8,121,106,248,11,9,128,210,41,33,11,155,42,225,64,57,74,1,0,54,232,83,0,145,224,3,3,41,224,67,0,145,232,19,0,249,227,99,0,145,226,131,0,145,225,115,0,145,10,0,0,148,6,0,0,20,184,245,255,151,40,1,128, - 82,8,0,0,185,207,242,255,151,0,0,128,18,253,123,195,168,255,35,3,213,192,3,95,214,127,35,3,213,243,83,191,169,253,123,190,169,253,3,0,145,243,3,2,170,244,3,3,170,180,11,0,249,32,0,64,185,70,254,255,151,104,2,64,249,0,1,64,185,9,124,64,147,42, - 253,70,147,136,0,0,144,8,65,10,145,41,21,64,146,11,9,128,210,8,121,106,248,41,33,11,155,42,225,64,57,10,2,0,54,85,253,255,151,104,0,0,144,8,225,43,145,9,253,223,200,32,1,63,214,96,0,0,52,19,0,128,82,12,0,0,20,104,0,0,144,8,225,45,145,9,253,223, - 200,32,1,63,214,243,3,0,42,154,245,255,151,19,0,0,185,140,245,255,151,40,1,128,82,8,0,0,185,19,0,128,18,128,2,64,185,49,254,255,151,224,3,19,42,253,123,194,168,243,83,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,191,169,253, - 3,0,145,224,0,0,181,124,245,255,151,200,2,128,82,8,0,0,185,147,242,255,151,0,0,128,18,3,0,0,20,0,24,64,185,191,59,3,213,253,123,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,186,169,243,83,1,169,245,91,2,169,247,99,3,169,249, - 107,4,169,251,43,0,249,253,3,0,145,172,192,255,151,255,3,1,209,247,3,0,42,244,3,1,170,246,3,2,42,243,3,3,170,246,24,0,52,20,2,0,181,40,0,128,82,104,226,0,57,201,2,128,82,127,54,0,185,229,3,19,170,104,194,0,57,4,0,128,210,3,0,128,82,105,46,0, - 185,2,0,128,210,1,0,128,210,0,0,128,210,124,242,255,151,0,0,128,18,184,0,0,20,232,126,64,147,27,253,70,147,105,0,0,240,56,65,10,145,8,21,64,146,248,27,0,249,10,9,128,210,25,125,10,155,8,123,123,248,249,19,0,249,42,3,8,139,85,229,192,57,168,254, - 3,17,9,29,0,83,63,5,0,113,72,0,0,84,54,252,7,55,72,225,64,57,200,0,40,54,227,3,19,170,66,0,128,82,1,0,128,210,224,3,23,42,58,7,0,148,224,3,23,42,150,3,0,148,32,9,0,52,8,123,123,248,9,1,25,139,42,225,192,57,170,8,248,54,104,162,64,57,104,0,0, - 53,224,3,19,170,185,224,255,151,104,14,64,249,9,157,64,249,169,0,0,181,8,123,123,248,9,1,25,139,42,229,192,57,74,7,0,52,8,123,123,248,225,163,0,145,9,1,25,139,72,0,0,240,8,193,44,145,32,21,64,249,9,253,223,200,32,1,63,214,32,6,0,52,85,5,0,52, - 191,6,0,113,164,26,66,122,1,14,0,84,154,66,54,139,255,11,0,249,23,0,128,82,255,27,0,185,159,2,26,235,248,3,20,170,162,3,0,84,245,23,64,185,22,39,64,120,224,3,22,42,204,7,0,148,223,34,32,107,33,2,0,84,249,3,21,42,53,11,0,17,245,23,0,185,223,42, - 0,113,33,1,0,84,160,1,128,82,195,7,0,148,8,60,0,83,31,53,0,113,225,0,0,84,53,15,0,17,247,6,0,17,245,223,2,41,31,3,26,235,226,0,0,84,236,255,255,23,72,0,0,240,8,225,45,145,9,253,223,200,32,1,63,214,224,19,0,185,249,19,64,249,248,27,64,249,233, - 67,0,145,51,0,0,20,227,3,19,170,226,3,22,42,225,3,20,170,224,3,23,42,184,0,0,148,24,0,0,20,8,123,123,248,10,1,25,139,73,225,192,57,201,2,248,54,245,1,0,52,191,6,0,113,0,1,0,84,191,10,0,113,97,7,0,84,226,3,22,42,225,3,20,170,224,3,23,42,56,2, - 0,148,10,0,0,20,226,3,22,42,225,3,20,170,224,3,23,42,139,2,0,148,5,0,0,20,226,3,22,42,225,3,20,170,224,3,23,42,214,1,0,148,224,3,0,249,26,0,0,20,232,227,0,145,64,21,64,249,31,1,0,249,4,0,128,210,31,9,0,185,72,0,0,240,8,129,51,145,9,253,223,200, - 227,243,0,145,226,3,22,42,225,3,20,170,32,1,63,214,192,0,0,53,72,0,0,240,8,225,45,145,9,253,223,200,32,1,63,214,224,59,0,185,233,227,0,145,40,1,64,249,234,3,0,145,41,9,64,185,72,1,0,249,73,9,0,185,225,11,64,185,232,7,64,185,200,3,0,53,224,3, - 64,185,192,1,0,52,31,20,0,113,33,1,0,84,40,0,128,82,41,1,128,82,104,194,0,57,170,0,128,82,105,46,0,185,104,226,0,57,106,54,0,185,92,255,255,23,225,3,19,170,247,244,255,151,89,255,255,23,8,123,123,248,9,1,25,139,42,225,64,57,138,0,48,54,136,2, - 192,57,31,105,0,113,64,1,0,84,40,0,128,82,127,54,0,185,137,3,128,82,104,194,0,57,105,46,0,185,104,226,0,57,75,255,255,23,0,1,1,75,2,0,0,20,0,0,128,82,255,3,1,145,229,191,255,151,251,43,64,249,249,107,68,169,247,99,67,169,245,91,66,169,243,83, - 65,169,253,123,198,168,255,35,3,213,192,3,95,214,127,35,3,213,243,83,188,169,245,91,1,169,247,99,2,169,249,27,0,249,251,31,0,249,253,123,190,169,253,3,0,145,245,3,0,42,181,19,0,185,247,3,1,170,248,3,2,42,243,3,3,170,191,10,0,49,1,2,0,84,52,0, - 128,82,116,226,0,57,127,54,0,185,116,194,0,57,40,1,128,82,104,46,0,185,0,0,128,18,253,123,194,168,251,31,64,249,249,27,64,249,247,99,66,169,245,91,65,169,243,83,196,168,255,35,3,213,192,3,95,214,213,0,248,55,104,0,0,240,8,145,70,185,191,2,8, - 107,40,0,128,82,67,0,0,84,8,0,128,82,52,0,128,82,200,1,0,53,116,226,0,57,127,54,0,185,116,194,0,57,40,1,128,82,104,46,0,185,229,3,19,170,4,0,128,210,3,0,128,82,2,0,128,210,1,0,128,210,0,0,128,210,134,241,255,151,226,255,255,23,168,126,64,147, - 25,253,70,147,105,0,0,240,59,65,10,145,8,21,64,146,10,9,128,210,9,125,10,155,169,15,0,249,104,123,121,248,9,1,9,139,42,225,64,57,10,253,7,54,224,3,21,42,237,252,255,151,22,0,128,18,104,123,121,248,169,15,64,249,9,1,9,139,42,225,64,57,234,0,0, - 55,116,194,0,57,40,1,128,82,104,46,0,185,116,226,0,57,127,54,0,185,7,0,0,20,227,3,19,170,226,3,24,42,225,3,23,170,224,3,21,42,206,254,255,151,246,3,0,42,224,3,21,42,229,252,255,151,224,3,22,42,191,255,255,23,127,35,3,213,253,123,186,169,243, - 83,1,169,245,91,2,169,247,99,3,169,249,107,4,169,251,43,0,249,253,3,0,145,116,191,255,151,255,131,2,209,250,3,0,145,244,3,0,42,67,27,0,249,136,126,64,147,105,0,0,240,57,65,10,145,22,253,70,147,8,21,64,146,48,0,128,146,86,19,0,249,9,9,128,210, - 80,67,0,249,248,3,1,170,27,125,9,155,40,123,118,248,88,55,0,249,9,1,27,139,40,21,64,249,72,51,0,249,8,67,34,139,72,31,0,249,73,0,0,240,40,225,44,145,9,253,223,200,32,1,63,214,79,27,64,249,64,43,0,185,232,161,64,57,136,0,0,53,224,3,15,170,154, - 223,255,151,79,27,64,249,232,13,64,249,23,0,128,210,95,7,0,249,78,31,64,249,21,0,128,82,243,3,24,170,9,13,64,185,31,3,14,235,73,47,0,185,194,30,0,84,136,126,64,147,84,15,64,185,106,0,0,208,70,193,34,145,7,253,70,147,71,27,7,169,104,2,192,57, - 37,0,128,82,95,7,0,185,56,0,128,82,72,3,0,57,40,189,159,82,63,1,8,107,97,10,0,84,43,123,103,248,13,0,128,82,104,193,45,139,9,1,27,139,42,249,192,57,138,0,0,52,173,5,0,17,191,21,0,113,75,255,255,84,204,1,19,203,191,1,0,113,173,6,0,84,40,123,118, - 248,105,3,8,139,42,249,64,57,200,200,234,56,14,5,0,17,214,1,13,75,159,193,54,235,43,20,0,84,40,123,103,248,75,35,2,145,234,3,13,42,9,1,27,139,44,249,0,145,136,21,192,56,74,5,0,81,104,21,0,56,170,255,255,53,10,0,128,82,223,2,0,113,45,1,0,84,235, - 3,19,170,76,35,2,145,104,21,192,56,73,1,13,11,74,5,0,17,95,1,22,107,136,201,41,56,107,255,255,84,71,19,64,249,10,0,128,210,40,123,103,248,73,1,27,139,74,5,0,145,173,5,0,81,41,1,8,139,63,249,0,57,77,255,255,53,223,17,0,113,95,35,0,249,184,20, - 133,26,72,35,2,145,2,127,64,211,72,39,0,249,228,3,15,170,67,3,1,145,65,35,1,145,64,19,0,145,9,6,0,148,31,4,0,177,64,21,0,84,214,6,0,81,17,0,0,20,104,2,64,57,214,200,232,56,200,6,0,17,159,193,40,235,107,16,0,84,31,17,0,113,95,79,5,169,184,20, - 133,26,2,127,64,211,228,3,15,170,67,67,1,145,65,99,1,145,64,19,0,145,247,5,0,148,31,4,0,177,0,19,0,84,115,194,54,139,40,0,0,20,40,123,118,248,108,3,8,139,138,245,64,57,106,1,16,54,136,249,192,57,66,0,128,210,105,2,192,57,65,67,2,145,72,67,2, - 57,104,31,128,82,72,1,8,10,73,71,2,57,136,245,0,57,21,0,0,20,232,13,64,249,107,2,192,57,9,1,64,249,106,29,0,83,42,217,234,120,170,1,248,54,118,6,0,145,223,2,14,235,194,13,0,84,227,3,15,170,66,0,128,210,225,3,19,170,64,19,0,145,11,5,0,148,31, - 4,0,49,0,15,0,84,243,3,22,170,8,0,0,20,34,0,128,210,225,3,19,170,227,3,15,170,64,19,0,145,2,5,0,148,31,4,0,49,224,13,0,84,64,43,64,185,7,0,128,210,6,0,128,210,165,0,128,82,68,99,2,145,227,3,24,42,66,19,0,145,1,0,128,82,115,6,0,145,4,248,255, - 151,246,3,0,42,118,12,0,52,72,0,0,240,8,129,51,145,87,51,64,249,4,0,128,210,9,253,223,200,67,115,0,145,226,3,22,42,65,99,2,145,224,3,23,170,32,1,63,214,32,10,0,52,72,55,64,249,106,2,8,75,72,31,64,185,84,1,21,11,84,15,0,185,31,1,22,107,3,10,0, - 84,72,3,192,57,31,41,0,113,65,2,0,84,168,1,128,82,72,51,0,121,72,0,0,240,8,129,51,145,9,253,223,200,4,0,128,210,67,115,0,145,34,0,128,82,65,99,0,145,224,3,23,170,32,1,63,214,96,7,0,52,72,31,64,185,232,7,0,52,148,6,0,17,84,15,0,185,181,6,0,17, - 78,31,64,249,127,2,14,235,34,7,0,84,87,7,64,249,79,27,64,249,86,19,64,249,71,27,71,169,73,47,64,185,69,255,255,23,14,0,128,82,159,1,0,241,173,1,0,84,71,19,64,249,15,0,128,210,200,1,13,11,41,123,103,248,106,195,40,139,232,105,243,56,206,5,0,17, - 207,125,64,147,255,1,12,235,75,1,9,139,104,249,0,57,235,254,255,84,136,1,20,11,72,15,0,185,64,7,64,249,34,0,0,20,13,0,128,82,159,1,0,241,77,255,255,84,71,19,64,249,11,0,128,210,40,123,103,248,105,3,11,139,173,5,0,17,42,1,8,139,105,105,243,56, - 171,125,64,147,127,1,12,235,73,249,0,57,11,255,255,84,238,255,255,23,71,19,64,249,139,249,0,57,40,123,103,248,106,3,8,139,73,245,64,57,40,1,30,50,137,6,0,17,72,245,0,57,73,15,0,185,230,255,255,23,72,0,0,240,8,225,45,145,9,253,223,200,32,1,63, - 214,64,11,0,185,224,255,255,23,87,7,64,249,224,3,23,170,225,3,21,42,255,131,2,145,88,190,255,151,251,43,64,249,249,107,68,169,247,99,67,169,245,91,66,169,243,83,65,169,253,123,198,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,186, - 169,243,83,1,169,245,91,2,169,247,99,3,169,249,107,4,169,251,43,0,249,253,3,0,145,62,190,255,151,47,40,128,210,68,193,255,151,255,115,47,203,9,124,64,147,255,3,0,249,104,0,0,240,8,65,10,145,42,253,70,147,41,21,64,146,8,121,106,248,11,9,128,210, - 243,3,1,170,0,0,128,210,118,66,34,139,20,0,128,82,41,33,11,155,127,2,22,235,58,21,64,249,2,6,0,84,72,0,0,240,25,129,51,145,245,7,64,185,248,99,0,145,251,99,0,145,171,1,128,82,241,130,130,210,234,99,49,139,232,3,27,170,127,2,22,235,98,1,0,84, - 105,2,192,57,115,6,0,145,63,41,0,113,129,0,0,84,11,1,0,57,8,5,0,145,148,6,0,17,9,21,0,56,31,1,10,235,163,254,255,84,23,1,24,75,40,255,223,200,4,0,128,210,227,67,0,145,226,3,23,42,225,99,0,145,224,3,26,170,0,1,63,214,128,1,0,52,232,19,64,185, - 181,2,8,11,245,7,0,185,31,1,23,107,131,1,0,84,127,2,22,235,241,130,130,210,234,99,49,139,171,1,128,82,35,252,255,84,6,0,0,20,72,0,0,240,8,225,45,145,9,253,223,200,32,1,63,214,224,3,0,185,224,3,64,249,225,3,20,42,47,40,128,210,255,115,47,139, - 0,190,255,151,251,43,64,249,249,107,68,169,247,99,67,169,245,91,66,169,243,83,65,169,253,123,198,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,186,169,243,83,1,169,245,91,2,169,247,99,3,169,249,107,4,169,251,43,0,249,253,3,0,145, - 230,189,255,151,47,40,128,210,236,192,255,151,255,115,47,203,9,124,64,147,255,3,0,249,104,0,0,240,8,65,10,145,42,253,70,147,41,21,64,146,8,121,106,248,11,9,128,210,243,3,1,170,0,0,128,210,118,66,34,139,20,0,128,82,41,33,11,155,127,2,22,235,57, - 21,64,249,2,6,0,84,72,0,0,240,24,129,51,145,245,7,64,185,250,99,0,145,170,1,128,82,209,130,130,210,251,99,49,139,235,99,0,145,232,3,26,170,127,2,22,235,98,1,0,84,105,2,64,121,115,10,0,145,63,41,0,113,129,0,0,84,10,1,0,121,8,9,0,145,148,10,0, - 17,9,37,0,120,31,1,27,235,163,254,255,84,8,1,11,203,23,253,65,147,8,255,223,200,4,0,128,210,227,67,0,145,226,122,31,83,225,99,0,145,224,3,25,170,0,1,63,214,96,1,0,52,232,19,64,185,181,2,8,11,31,5,23,107,245,7,0,185,99,1,0,84,127,2,22,235,170, - 1,128,82,235,99,0,145,35,252,255,84,6,0,0,20,72,0,0,240,8,225,45,145,9,253,223,200,32,1,63,214,224,3,0,185,224,3,64,249,225,3,20,42,47,40,128,210,255,115,47,139,168,189,255,151,251,43,64,249,249,107,68,169,247,99,67,169,245,91,66,169,243,83, - 65,169,253,123,198,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,253,123,186,169,243,83,1,169,245,91,2,169,247,99,3,169,249,107,4,169,251,43,0,249,253,3,0,145,142,189,255,151,79,40,128,210,148,192,255,151,255,115,47,203,9,124,64,147,104, - 0,0,240,8,65,10,145,42,253,70,147,41,21,64,146,8,121,106,248,11,9,128,210,243,3,1,170,118,66,34,139,41,33,11,155,232,3,0,145,31,1,0,249,127,2,22,235,31,9,0,185,57,21,64,249,34,7,0,84,72,0,0,240,24,129,51,145,250,99,0,145,187,1,128,82,247,3,19, - 42,235,99,0,145,234,3,27,145,232,3,26,170,127,2,22,235,66,1,0,84,105,2,64,121,115,10,0,145,63,41,0,113,97,0,0,84,27,1,0,121,8,9,0,145,9,37,0,120,31,1,10,235,195,254,255,84,8,1,11,203,3,253,65,147,7,0,128,210,6,0,128,210,165,170,129,82,228,35, - 27,145,226,99,0,145,1,0,128,82,32,189,159,82,170,246,255,151,245,3,0,42,181,2,0,52,20,0,128,82,213,1,0,52,232,35,27,145,1,65,52,139,8,255,223,200,162,2,20,75,4,0,128,210,227,67,0,145,224,3,25,170,0,1,63,214,64,1,0,52,232,19,64,185,20,1,20,11, - 159,2,21,107,131,254,255,84,105,2,23,75,233,7,0,185,127,2,22,235,226,0,0,84,211,255,255,23,72,0,0,240,8,225,45,145,9,253,223,200,32,1,63,214,224,3,0,185,224,3,64,249,225,11,64,185,79,40,128,210,255,115,47,139,70,189,255,151,251,43,64,249,249, - 107,68,169,247,99,67,169,245,91,66,169,243,83,65,169,253,123,198,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,190,169,245,91,1,169,253,123,190,169,253,3,0,145,20,0,128,82,191,19,0,185,0,1,128,82,226,232,255,151,115,0,128,82,117, - 0,0,240,118,0,0,240,179,23,0,185,200,34,71,185,127,2,8,107,224,3,0,84,168,150,67,249,9,217,115,248,73,0,0,181,25,0,0,20,40,21,64,185,191,59,3,213,8,53,13,83,8,1,0,52,168,150,67,249,0,217,115,248,200,4,0,148,31,4,0,49,96,0,0,84,136,6,0,17,168, - 19,0,185,168,150,67,249,9,217,115,248,32,193,0,145,74,0,0,240,72,129,42,145,9,253,223,200,32,1,63,214,168,150,67,249,0,217,115,248,126,238,255,151,168,150,67,249,31,217,51,248,180,19,64,185,115,6,0,17,223,255,255,23,0,1,128,82,197,232,255,151, - 224,3,20,42,253,123,194,168,245,91,65,169,243,83,194,168,255,35,3,213,192,3,95,214,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,243,3,0,170,104,22,64,185,191,59,3,213,8,53,13,83,136,1,0,52,104,22,64,185,191,59,3,213,8,25,6,83,8,1,0, - 52,96,6,64,249,98,238,255,151,1,40,128,18,96,82,0,145,13,190,255,151,127,126,0,169,127,18,0,185,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95,214,127,35,3,213,253,123,191,169,253,3,0,145,31,8,0,49,161,0,0,84,157,241,255,151,40,1,128,82, - 8,0,0,185,21,0,0,20,0,2,248,55,104,0,0,240,8,145,70,185,31,0,8,107,130,1,0,84,9,124,64,147,104,0,0,240,8,65,10,145,42,253,70,211,41,21,64,146,8,121,106,248,11,9,128,210,41,33,11,155,42,225,64,57,64,1,26,18,6,0,0,20,137,241,255,151,40,1,128,82, - 8,0,0,185,160,238,255,151,0,0,128,82,253,123,193,168,255,35,3,213,192,3,95,214,0,0,0,0,104,0,0,208,0,77,71,185,191,59,3,213,192,3,95,214,127,35,3,213,253,123,186,169,243,83,1,169,245,91,2,169,247,99,3,169,249,107,4,169,251,43,0,249,253,3,0,145, - 184,188,255,151,255,195,15,209,250,3,0,170,247,3,2,170,249,3,3,170,26,2,0,181,225,1,0,180,109,241,255,151,200,2,128,82,8,0,0,185,132,238,255,151,255,195,15,145,180,188,255,151,251,43,64,249,249,107,68,169,247,99,67,169,245,91,66,169,243,83,65, - 169,253,123,198,168,255,35,3,213,192,3,95,214,87,254,255,180,57,254,255,180,63,8,0,241,99,254,255,84,40,4,0,209,255,3,0,249,246,3,8,145,24,105,23,155,246,7,0,249,11,0,128,210,251,67,0,145,8,3,26,203,9,9,215,154,42,5,0,145,95,33,0,241,72,5,0, - 84,31,3,26,235,9,4,0,84,243,2,26,139,127,2,24,235,244,3,26,170,168,1,0,84,225,3,20,170,224,3,19,170,239,3,25,170,81,0,0,208,49,82,66,249,32,2,63,214,224,1,63,214,31,0,0,113,116,194,148,154,243,2,19,139,127,2,24,235,169,254,255,84,235,3,23,170, - 234,3,24,170,159,2,24,235,0,1,0,84,140,2,24,203,72,1,192,57,107,5,0,209,137,105,234,56,136,105,42,56,73,21,0,56,107,255,255,181,24,3,23,203,31,3,26,235,104,252,255,84,235,3,64,249,107,5,0,209,214,34,0,209,235,91,0,169,123,35,0,209,43,248,255, - 183,218,2,64,249,120,3,64,249,211,255,255,23,72,253,65,211,19,125,23,155,224,3,26,170,116,2,26,139,225,3,20,170,239,3,25,170,81,0,0,208,49,82,66,249,32,2,63,214,224,1,63,214,31,0,0,113,141,1,0,84,236,3,23,170,235,3,20,170,95,3,20,235,0,1,0,84, - 106,1,19,203,104,21,192,56,73,1,192,57,140,5,0,209,72,1,0,57,105,241,31,56,76,255,255,181,225,3,24,170,224,3,26,170,239,3,25,170,81,0,0,208,49,82,66,249,32,2,63,214,224,1,63,214,31,0,0,113,141,1,0,84,235,3,23,170,234,3,24,170,95,3,24,235,0,1, - 0,84,76,3,24,203,72,1,192,57,107,5,0,209,137,105,234,56,136,105,42,56,73,21,0,56,107,255,255,181,225,3,24,170,224,3,20,170,239,3,25,170,81,0,0,208,49,82,66,249,32,2,63,214,224,1,63,214,31,0,0,113,141,1,0,84,235,3,23,170,234,3,24,170,159,2,24, - 235,0,1,0,84,140,2,24,203,72,1,192,57,107,5,0,209,137,105,234,56,136,105,42,56,73,21,0,56,107,255,255,181,243,3,26,170,246,3,24,170,159,2,19,235,201,1,0,84,243,2,19,139,127,2,20,235,98,1,0,84,225,3,20,170,224,3,19,170,239,3,25,170,81,0,0,208, - 49,82,66,249,32,2,63,214,224,1,63,214,31,0,0,113,173,254,255,84,13,0,0,20,243,2,19,139,127,2,24,235,72,1,0,84,225,3,20,170,224,3,19,170,239,3,25,170,81,0,0,208,49,82,66,249,32,2,63,214,224,1,63,214,31,0,0,113,173,254,255,84,245,3,22,170,214, - 2,23,203,223,2,20,235,73,1,0,84,225,3,20,170,224,3,22,170,239,3,25,170,81,0,0,208,49,82,66,249,32,2,63,214,224,1,63,214,31,0,0,113,140,254,255,84,223,2,19,235,227,1,0,84,235,3,23,170,234,3,22,170,127,2,22,235,0,1,0,84,108,2,22,203,72,1,192,57, - 107,5,0,209,137,105,234,56,136,105,42,56,73,21,0,56,107,255,255,181,159,2,22,235,148,18,147,154,201,255,255,23,159,2,21,235,162,1,0,84,181,2,23,203,191,2,20,235,73,1,0,84,225,3,20,170,224,3,21,170,239,3,25,170,81,0,0,208,49,82,66,249,32,2,63, - 214,224,1,63,214,192,254,255,52,12,0,0,20,181,2,23,203,191,2,26,235,41,1,0,84,225,3,20,170,224,3,21,170,239,3,25,170,81,0,0,208,49,82,66,249,32,2,63,214,224,1,63,214,192,254,255,52,9,3,19,203,235,91,64,169,168,2,26,203,31,1,9,235,139,1,0,84, - 95,3,21,235,194,0,0,84,218,134,0,248,107,5,0,145,117,3,0,249,123,35,0,145,235,91,0,169,127,2,24,235,34,235,255,84,250,3,19,170,49,255,255,23,127,2,24,235,194,0,0,84,211,134,0,248,107,5,0,145,120,3,0,249,123,35,0,145,235,91,0,169,95,3,21,235, - 194,233,255,84,248,3,21,170,38,255,255,23,0,0,0,0,127,35,3,213,253,123,191,169,253,3,0,145,163,0,0,181,160,0,0,181,65,1,0,181,0,0,128,82,13,0,0,20,224,0,0,180,193,0,0,180,99,0,0,181,31,0,0,57,250,255,255,23,66,1,0,181,31,0,0,57,105,240,255,151, - 200,2,128,82,8,0,0,185,128,237,255,151,192,2,128,82,253,123,193,168,255,35,3,213,192,3,95,214,234,3,0,170,233,3,1,170,236,3,3,170,77,0,0,203,127,4,0,177,225,0,0,84,168,105,234,56,72,21,0,56,232,252,255,52,41,5,0,209,137,255,255,181,14,0,0,20, - 168,105,234,56,235,3,12,170,72,21,0,56,8,252,255,52,41,5,0,209,105,0,0,180,140,5,0,209,44,255,255,181,104,5,0,209,63,1,0,241,104,145,136,154,72,0,0,181,95,1,0,57,201,250,255,181,127,4,0,177,161,0,0,84,8,0,1,139,31,241,31,56,0,10,128,82,222,255, - 255,23,31,0,0,57,64,240,255,151,72,4,128,82,8,0,0,185,87,237,255,151,64,4,128,82,215,255,255,23,127,35,3,213,253,123,191,169,253,3,0,145,123,187,255,151,255,131,0,209,8,0,128,82,234,3,0,145,9,125,64,147,63,129,0,241,66,4,0,84,8,5,0,17,63,105, - 42,56,31,129,0,113,75,255,255,84,41,0,64,57,44,0,128,82,73,1,0,52,237,3,0,145,43,253,67,211,40,9,0,18,105,105,109,56,138,33,200,26,72,1,9,42,41,28,64,56,104,105,45,56,41,255,255,53,9,0,64,57,73,1,0,52,235,3,0,145,40,9,0,18,41,253,67,211,138, - 33,200,26,40,105,107,56,95,1,8,106,129,0,0,84,9,28,64,56,41,255,255,53,0,0,128,210,255,131,0,145,95,187,255,151,253,123,193,168,255,35,3,213,192,3,95,214,127,1,0,148,0,0,62,212,0,0,0,0,2,0,128,210,3,0,0,20,31,32,3,213,0,0,0,0,127,35,3,213,243, - 83,191,169,253,123,189,169,253,3,0,145,243,3,1,170,225,3,2,170,244,3,0,170,244,0,0,181,0,240,255,151,200,2,128,82,8,0,0,185,23,237,255,151,0,0,128,210,29,0,0,20,83,255,255,180,159,2,19,235,130,255,255,84,224,67,0,145,226,218,255,151,236,19,64, - 249,136,9,64,185,104,0,0,53,96,6,0,209,13,0,0,20,107,6,0,209,107,5,0,209,159,2,11,235,168,0,0,84,104,1,64,57,8,1,12,139,9,101,64,57,73,255,23,55,104,2,11,203,9,1,64,146,106,2,9,203,64,5,0,209,232,163,64,57,168,0,0,52,234,11,64,249,72,169,67, - 185,9,121,30,18,73,169,3,185,253,123,195,168,243,83,193,168,255,35,3,213,192,3,95,214,127,35,3,213,253,123,191,169,253,3,0,145,224,0,0,181,214,239,255,151,200,2,128,82,8,0,0,185,237,236,255,151,0,0,128,146,9,0,0,20,226,3,0,170,104,0,0,208,0, - 69,65,249,73,0,0,208,40,193,47,145,9,253,223,200,1,0,128,82,32,1,63,214,253,123,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,190,169,245,91,1,169,253,123,191,169,253,3,0,145,244,3,0,170,243,3,1,170,148,0,0,181,224,3,19,170,201, - 245,255,151,36,0,0,20,147,0,0,181,224,3,20,170,109,236,255,151,31,0,0,20,127,130,0,177,72,3,0,84,72,0,0,208,8,161,47,145,118,0,0,208,192,70,65,249,9,253,223,200,227,3,19,170,226,3,20,170,1,0,128,82,32,1,63,214,128,2,0,181,72,0,0,208,21,161,47, - 145,39,254,255,151,128,1,0,52,224,3,19,170,110,213,255,151,32,1,0,52,192,70,65,249,227,3,19,170,168,254,223,200,226,3,20,170,1,0,128,82,0,1,63,214,160,254,255,180,5,0,0,20,154,239,255,151,136,1,128,82,8,0,0,185,0,0,128,210,253,123,193,168,245, - 91,65,169,243,83,194,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,189,169,245,91,1,169,247,99,2,169,253,123,191,169,253,3,0,145,255,67,0,209,243,3,3,42,127,2,0,113,245,3,0,170,246,3,1,42,244,3,2,170,247,3,4,170,248,3,5,42,237,0, - 0,84,97,126,64,147,224,3,20,170,71,186,255,151,31,0,19,107,19,4,0,17,19,160,147,26,7,0,128,210,255,3,0,249,6,0,128,210,229,3,24,42,228,3,23,170,227,3,19,42,226,3,20,170,225,3,22,42,224,3,21,170,56,229,255,151,255,67,0,145,253,123,193,168,247, - 99,66,169,245,91,65,169,243,83,195,168,255,35,3,213,192,3,95,214,127,35,3,213,243,83,191,169,253,123,191,169,253,3,0,145,243,3,0,170,147,8,0,180,104,0,0,176,20,65,32,145,136,14,64,249,96,14,64,249,31,0,8,235,64,0,0,84,20,236,255,151,96,18,64, - 249,136,18,64,249,31,0,8,235,64,0,0,84,15,236,255,151,96,22,64,249,136,22,64,249,31,0,8,235,64,0,0,84,10,236,255,151,96,26,64,249,136,26,64,249,31,0,8,235,64,0,0,84,5,236,255,151,96,30,64,249,136,30,64,249,31,0,8,235,64,0,0,84,0,236,255,151, - 96,34,64,249,136,34,64,249,31,0,8,235,64,0,0,84,251,235,255,151,96,38,64,249,136,38,64,249,31,0,8,235,64,0,0,84,246,235,255,151,96,54,64,249,136,54,64,249,31,0,8,235,64,0,0,84,241,235,255,151,96,58,64,249,136,58,64,249,31,0,8,235,64,0,0,84,236, - 235,255,151,96,62,64,249,136,62,64,249,31,0,8,235,64,0,0,84,231,235,255,151,96,66,64,249,136,66,64,249,31,0,8,235,64,0,0,84,226,235,255,151,96,70,64,249,136,70,64,249,31,0,8,235,64,0,0,84,221,235,255,151,96,74,64,249,136,74,64,249,31,0,8,235, - 64,0,0,84,216,235,255,151,253,123,193,168,243,83,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,191,169,253,123,191,169,253,3,0,145,243,3,0,170,147,3,0,180,104,0,0,176,20,65,32,145,136,2,64,249,96,2,64,249,31,0,8,235,64,0,0,84, - 198,235,255,151,96,6,64,249,136,6,64,249,31,0,8,235,64,0,0,84,193,235,255,151,96,10,64,249,136,10,64,249,31,0,8,235,64,0,0,84,188,235,255,151,96,46,64,249,136,46,64,249,31,0,8,235,64,0,0,84,183,235,255,151,96,50,64,249,136,50,64,249,31,0,8,235, - 64,0,0,84,178,235,255,151,253,123,193,168,243,83,193,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,190,169,245,11,0,249,253,123,191,169,253,3,0,145,243,3,0,170,179,10,0,180,116,226,0,145,127,2,20,235,245,3,19,170,160,0,0,84,160,134, - 64,248,160,235,255,151,191,2,20,235,161,255,255,84,149,226,0,145,3,0,0,20,128,134,64,248,154,235,255,151,159,2,21,235,161,255,255,84,116,194,1,145,117,66,3,145,3,0,0,20,128,134,64,248,147,235,255,151,159,2,21,235,161,255,255,84,116,66,3,145, - 117,194,4,145,3,0,0,20,128,134,64,248,140,235,255,151,159,2,21,235,161,255,255,84,116,194,4,145,117,2,5,145,3,0,0,20,128,134,64,248,133,235,255,151,159,2,21,235,161,255,255,84,96,162,64,249,129,235,255,151,96,166,64,249,127,235,255,151,96,170, - 64,249,125,235,255,151,116,130,5,145,117,98,6,145,3,0,0,20,128,134,64,248,120,235,255,151,159,2,21,235,161,255,255,84,116,98,6,145,117,66,7,145,3,0,0,20,128,134,64,248,113,235,255,151,159,2,21,235,161,255,255,84,116,66,7,145,117,194,8,145,3, - 0,0,20,128,134,64,248,106,235,255,151,159,2,21,235,161,255,255,84,116,194,8,145,117,66,10,145,3,0,0,20,128,134,64,248,99,235,255,151,159,2,21,235,161,255,255,84,116,66,10,145,117,130,10,145,3,0,0,20,128,134,64,248,92,235,255,151,159,2,21,235, - 161,255,255,84,96,82,65,249,88,235,255,151,96,86,65,249,86,235,255,151,96,90,65,249,84,235,255,151,96,94,65,249,82,235,255,151,253,123,193,168,245,11,64,249,243,83,194,168,255,35,3,213,192,3,95,214,255,67,0,209,224,3,0,185,224,3,64,185,96,0, - 62,212,255,67,0,145,192,3,95,214,127,35,3,213,253,123,191,169,253,3,0,145,0,1,128,82,246,255,255,151,253,123,193,168,255,35,3,213,192,3,95,214,255,67,0,209,224,3,0,249,64,0,128,82,96,0,62,212,255,67,0,145,192,3,95,214,72,0,0,208,8,1,47,145,9, - 253,223,200,32,1,31,214,127,35,3,213,243,83,190,169,245,91,1,169,253,123,191,169,253,3,0,145,244,3,0,170,245,3,1,170,246,3,2,170,243,3,3,170,85,9,0,180,54,9,0,180,168,2,192,57,136,0,0,53,20,9,0,180,159,2,0,121,70,0,0,20,104,162,64,57,104,0,0, - 53,224,3,19,170,245,217,255,151,106,14,64,249,40,189,159,82,64,13,64,185,31,0,8,107,129,1,0,84,104,0,0,208,3,1,46,145,228,3,19,170,226,3,22,170,225,3,21,170,224,3,20,170,153,0,0,148,9,0,128,18,31,0,0,113,32,177,128,26,51,0,0,20,72,157,64,249, - 168,0,0,181,116,5,0,180,168,2,64,57,136,2,0,121,40,0,0,20,169,2,64,57,72,1,64,249,9,217,233,120,137,3,248,54,67,9,64,185,127,4,0,113,77,1,0,84,223,2,3,107,11,1,0,84,159,2,0,241,229,7,159,26,228,3,20,170,226,3,21,170,33,1,128,82,162,242,255,151, - 224,0,0,53,104,14,64,249,9,9,64,185,223,194,41,235,195,0,0,84,168,6,192,57,136,0,0,52,104,14,64,249,0,9,64,185,20,0,0,20,40,0,128,82,73,5,128,82,104,194,0,57,105,46,0,185,0,0,128,18,14,0,0,20,159,2,0,241,229,7,159,26,228,3,20,170,35,0,128,82, - 226,3,21,170,33,1,128,82,139,242,255,151,96,254,255,52,32,0,128,82,4,0,0,20,104,0,0,208,31,193,5,249,0,0,128,82,253,123,193,168,245,91,65,169,243,83,194,168,255,35,3,213,192,3,95,214,0,0,0,0,237,3,0,170,98,0,0,181,0,0,128,82,16,0,0,20,170,37, - 64,120,43,36,64,120,72,5,1,81,31,101,0,113,73,129,0,17,104,5,1,81,76,129,137,26,105,129,0,17,31,101,0,113,104,129,137,26,128,1,8,75,128,0,0,53,108,0,0,52,66,4,0,209,66,254,255,181,192,3,95,214,104,0,0,208,0,137,75,185,192,3,95,214,0,0,0,0,233, - 3,0,170,40,1,192,57,0,0,128,210,200,0,0,52,31,0,1,235,128,0,0,84,0,4,0,145,8,104,233,56,136,255,255,53,192,3,95,214,4,0,0,20,31,32,3,213,31,32,3,213,0,0,0,0,127,35,3,213,243,83,190,169,245,91,1,169,253,123,190,169,253,3,0,145,244,3,0,42,245, - 3,1,170,246,3,2,42,243,3,3,170,173,245,255,151,31,4,0,177,225,0,0,84,40,0,128,82,41,1,128,82,104,194,0,57,105,46,0,185,0,0,128,146,31,0,0,20,72,0,0,208,8,65,50,145,9,253,223,200,227,3,22,42,226,67,0,145,225,3,21,170,32,1,63,214,0,1,0,53,72,0, - 0,208,8,225,45,145,9,253,223,200,32,1,63,214,225,3,19,170,39,238,255,151,240,255,255,23,224,11,64,249,31,4,0,177,160,253,255,84,137,126,64,147,104,0,0,208,8,65,10,145,42,253,70,147,41,21,64,146,8,121,106,248,11,9,128,210,43,33,11,155,168,31, - 128,82,106,225,64,57,72,1,8,10,104,225,0,57,253,123,194,168,245,91,65,169,243,83,194,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,15,31,248,253,123,190,169,253,3,0,145,243,3,0,170,224,67,0,145,44,1,0,148,31,16,0,241,8,1,0,84,232,19, - 64,185,233,255,159,82,31,1,9,107,169,255,159,82,41,129,136,26,83,0,0,180,105,2,0,121,253,123,194,168,243,7,65,248,255,35,3,213,192,3,95,214,127,35,3,213,243,83,187,169,245,91,1,169,247,99,2,169,249,107,3,169,251,35,0,249,253,123,190,169,253, - 3,0,145,247,3,1,170,243,2,64,249,248,3,0,170,246,3,2,170,249,3,3,170,245,3,4,170,120,8,0,180,244,3,24,170,150,5,0,180,122,0,128,210,251,255,159,82,104,2,192,57,104,0,0,53,34,0,128,210,8,0,0,20,104,6,192,57,104,0,0,53,66,0,128,210,4,0,0,20,104, - 10,192,57,31,1,0,113,66,7,154,154,228,3,21,170,227,3,25,170,225,3,19,170,224,67,0,145,252,0,0,148,31,4,0,177,224,3,0,84,96,3,0,180,232,19,64,185,31,1,27,107,169,1,0,84,223,6,0,241,73,2,0,84,10,65,64,81,8,0,155,82,214,6,0,209,8,41,74,42,234,19, - 0,185,136,2,0,121,232,6,128,82,10,85,22,51,138,46,0,120,2,0,0,20,136,2,0,121,136,10,0,145,148,10,0,145,19,0,19,139,214,6,0,209,54,251,255,181,244,3,8,170,136,2,24,203,243,2,0,249,0,253,65,147,10,0,0,20,19,0,128,210,159,2,0,121,250,255,255,23, - 243,2,0,249,73,5,128,82,40,0,128,82,169,46,0,185,168,194,0,57,0,0,128,146,253,123,194,168,251,35,64,249,249,107,67,169,247,99,66,169,245,91,65,169,243,83,197,168,255,35,3,213,192,3,95,214,20,0,128,210,118,0,128,210,104,2,192,57,104,0,0,53,34, - 0,128,210,8,0,0,20,104,6,192,57,104,0,0,53,66,0,128,210,4,0,0,20,104,10,192,57,31,1,0,113,194,6,150,154,228,3,21,170,227,3,25,170,225,3,19,170,0,0,128,210,188,0,0,148,31,4,0,177,0,252,255,84,224,0,0,180,31,16,0,241,65,0,0,84,148,6,0,145,19,0, - 19,139,148,6,0,145,232,255,255,23,224,3,20,170,220,255,255,23,127,35,3,213,253,123,190,169,253,3,0,145,224,35,0,121,34,1,0,148,0,1,0,52,226,83,0,145,33,0,128,82,224,67,0,145,57,1,0,148,96,0,0,52,224,35,64,121,2,0,0,20,224,255,159,82,253,123, - 194,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,189,169,245,91,1,169,247,19,0,249,253,123,191,169,253,3,0,145,244,3,3,170,147,30,64,249,246,3,1,170,245,3,0,170,247,3,2,170,225,3,20,170,98,18,0,145,224,3,22,170,236,225,255,151,168, - 6,64,185,201,12,128,82,42,0,128,82,31,1,9,106,104,6,64,185,73,5,138,26,63,1,8,106,224,0,0,84,227,3,20,170,226,3,23,170,225,3,22,170,224,3,21,170,47,208,255,151,2,0,0,20,32,0,128,82,253,123,193,168,247,19,64,249,245,91,65,169,243,83,195,168,255, - 35,3,213,192,3,95,214,127,35,3,213,243,15,31,248,253,123,187,169,253,3,0,145,104,0,0,176,8,65,71,185,255,11,0,249,255,131,0,57,255,227,0,57,255,3,1,57,255,35,1,57,8,1,0,53,104,0,0,144,8,97,27,145,16,1,192,61,233,163,0,145,48,1,128,61,41,0,128, - 82,233,227,0,57,225,67,0,145,62,0,0,148,243,3,0,42,224,67,0,145,63,216,255,151,224,3,19,42,253,123,197,168,243,7,65,248,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,190,169,245,11,0,249,253,123,191,169,253,3,0,145,243,3,0,170,245,3, - 1,170,211,1,0,181,40,0,128,82,201,2,128,82,168,194,0,57,229,3,21,170,169,46,0,185,4,0,128,210,3,0,128,82,2,0,128,210,1,0,128,210,0,0,128,210,6,234,255,151,0,0,128,18,26,0,0,20,104,22,64,185,20,0,128,18,191,59,3,213,8,53,13,83,72,2,0,52,225,3, - 21,170,224,3,19,170,134,235,255,151,244,3,0,42,224,3,19,170,23,251,255,151,224,3,19,170,79,247,255,151,225,3,21,170,87,1,0,148,96,0,248,54,20,0,128,18,5,0,0,20,96,22,64,249,96,0,0,180,125,233,255,151,127,22,0,249,224,3,19,170,170,1,0,148,224, - 3,20,42,253,123,193,168,245,11,64,249,243,83,194,168,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,191,169,253,123,190,169,253,3,0,145,243,3,0,170,179,11,0,249,244,3,1,170,51,2,0,181,40,0,128,82,136,194,0,57,201,2,128,82,137,46,0,185, - 229,3,20,170,4,0,128,210,3,0,128,82,2,0,128,210,1,0,128,210,0,0,128,210,210,233,255,151,0,0,128,18,253,123,194,168,243,83,193,168,255,35,3,213,192,3,95,214,104,22,64,185,191,59,3,213,8,49,12,83,224,3,19,170,104,0,0,52,133,1,0,148,245,255,255, - 23,9,236,255,151,225,3,20,170,224,3,19,170,170,255,255,151,244,3,0,42,224,3,19,170,9,236,255,151,224,3,20,42,237,255,255,23,127,35,3,213,253,123,191,169,253,3,0,145,213,183,255,151,255,67,0,209,104,0,0,176,8,65,46,145,127,0,0,241,107,16,136, - 154,63,0,0,241,41,0,128,210,8,0,0,208,8,201,55,145,70,16,137,154,63,0,0,241,39,16,136,154,63,0,0,241,15,16,159,154,102,0,0,181,32,0,128,146,90,0,0,20,104,13,64,121,232,3,0,53,236,0,64,57,231,4,0,145,204,0,56,55,79,0,0,180,236,1,0,185,159,1,0, - 113,224,7,159,154,80,0,0,20,136,9,27,18,31,1,3,113,97,0,0,84,77,0,128,82,10,0,0,20,136,13,28,18,31,129,3,113,97,0,0,84,109,0,128,82,5,0,0,20,136,17,29,18,31,193,3,113,1,8,0,84,141,0,128,82,232,0,128,82,8,1,13,75,41,33,200,26,42,5,0,81,76,1,12, - 10,238,3,13,42,101,17,0,145,12,0,0,20,109,17,64,57,14,29,0,83,108,1,64,185,168,249,3,17,9,29,0,83,63,9,0,113,192,153,65,122,227,5,0,84,101,17,0,145,223,1,13,107,130,5,0,84,223,1,6,235,201,32,142,154,234,0,1,203,8,0,0,20,230,20,192,56,74,5,0, - 145,200,4,26,18,31,1,2,113,97,4,0,84,200,20,0,18,12,25,12,42,95,1,9,235,3,255,255,84,63,1,14,235,226,0,0,84,200,1,41,75,108,1,0,185,173,0,0,121,9,29,0,83,105,13,0,121,191,255,255,23,8,0,155,82,136,1,8,75,31,253,31,113,105,2,0,84,159,65,68,113, - 34,2,0,84,40,3,0,88,41,0,160,82,232,3,0,249,233,11,0,185,168,9,0,209,233,3,0,145,40,121,104,184,159,1,8,107,3,1,0,84,79,0,0,180,236,1,0,185,159,1,0,113,224,3,142,154,225,3,11,170,35,1,0,148,4,0,0,20,225,3,4,170,224,3,11,170,23,1,0,148,255,67, - 0,145,113,183,255,151,253,123,193,168,255,35,3,213,192,3,95,214,31,32,3,213,128,0,0,0,0,8,0,0,127,35,3,213,243,15,31,248,253,123,191,169,253,3,0,145,115,0,0,144,96,218,68,249,31,8,0,177,193,1,0,84,40,0,0,240,0,33,55,145,73,0,0,176,40,97,42,145, - 9,253,223,200,6,0,128,210,5,0,128,82,100,0,128,82,3,0,128,210,98,0,128,82,1,0,168,82,32,1,63,214,96,218,4,249,31,4,0,177,224,7,159,26,253,123,193,168,243,7,65,248,255,35,3,213,192,3,95,214,0,0,0,0,127,35,3,213,243,83,189,169,245,91,1,169,247, - 19,0,249,253,123,191,169,253,3,0,145,72,0,0,176,8,97,51,145,244,3,0,170,119,0,0,144,224,218,68,249,9,253,223,200,245,3,1,42,246,3,2,170,4,0,128,210,227,3,22,170,226,3,21,42,225,3,20,170,32,1,63,214,243,3,0,42,147,4,0,53,72,0,0,176,8,225,45,145, - 9,253,223,200,32,1,63,214,31,24,0,113,193,3,0,84,224,218,68,249,31,12,0,177,168,0,0,84,72,0,0,176,8,65,42,145,9,253,223,200,32,1,63,214,40,0,0,240,0,33,55,145,73,0,0,176,40,97,42,145,9,253,223,200,6,0,128,210,5,0,128,82,100,0,128,82,3,0,128, - 210,98,0,128,82,1,0,168,82,32,1,63,214,72,0,0,176,8,97,51,145,4,0,128,210,224,218,4,249,9,253,223,200,227,3,22,170,226,3,21,42,225,3,20,170,32,1,63,214,243,3,0,42,224,3,19,42,253,123,193,168,247,19,64,249,245,91,65,169,243,83,195,168,255,35, - 3,213,192,3,95,214,0,0,0,0,0,0,0,0,0,0,0,0,104,0,0,144,0,217,68,249,31,12,0,177,168,0,0,84,72,0,0,176,8,65,42,145,9,253,223,200,32,1,31,214,192,3,95,214,0,0,0,0,127,35,3,213,243,83,190,169,245,91,1,169,253,123,191,169,253,3,0,145,244,3,0,42, - 245,3,1,170,105,243,255,151,31,4,0,177,118,0,0,176,97,0,0,84,19,0,128,82,29,0,0,20,202,74,65,249,159,6,0,113,97,0,0,84,72,33,67,57,168,0,0,55,159,10,0,113,65,1,0,84,72,1,66,57,8,1,0,54,64,0,128,82,89,243,255,151,243,3,0,170,32,0,128,82,86,243, - 255,151,31,0,19,235,224,253,255,84,224,3,20,42,82,243,255,151,72,0,0,176,8,65,42,145,9,253,223,200,32,1,63,214,0,253,255,53,72,0,0,176,8,225,45,145,9,253,223,200,32,1,63,214,243,3,0,42,224,3,20,42,108,243,255,151,136,126,64,147,201,66,10,145, - 11,253,70,147,10,21,64,146,40,121,107,248,12,9,128,210,73,33,12,155,63,225,0,57,211,0,0,52,225,3,21,170,224,3,19,42,202,235,255,151,0,0,128,18,2,0,0,20,0,0,128,82,253,123,193,168,245,91,65,169,243,83,194,168,255,35,3,213,192,3,95,214,0,0,0,0, - 127,35,3,213,253,123,189,169,253,3,0,145,224,23,0,185,31,8,0,49,1,1,0,84,40,0,128,82,63,52,0,185,41,1,128,82,40,224,0,57,40,192,0,57,41,44,0,185,38,0,0,20,0,3,248,55,104,0,0,176,8,145,70,185,31,0,8,107,130,2,0,84,9,124,64,147,104,0,0,176,8,65, - 10,145,42,253,70,147,41,21,64,146,8,121,106,248,11,9,128,210,41,33,11,155,42,225,64,57,74,1,0,54,232,83,0,145,232,7,2,169,224,3,3,41,225,115,0,145,224,67,0,145,227,99,0,145,226,131,0,145,19,0,0,148,15,0,0,20,40,0,128,82,40,224,0,57,41,1,128, - 82,63,52,0,185,229,3,1,170,40,192,0,57,4,0,128,210,41,44,0,185,3,0,128,82,1,0,128,210,2,0,128,210,0,0,128,210,109,232,255,151,0,0,128,18,253,123,195,168,255,35,3,213,192,3,95,214,127,35,3,213,243,83,191,169,253,123,190,169,253,3,0,145,243,3, - 2,170,244,3,3,170,180,11,0,249,32,0,64,185,214,243,255,151,104,2,64,249,0,1,64,185,9,124,64,147,107,6,64,249,42,253,70,147,104,0,0,176,8,65,10,145,41,21,64,146,12,9,128,210,8,121,106,248,41,33,12,155,42,225,64,57,170,0,0,54,225,3,11,170,115, - 255,255,151,243,3,0,42,6,0,0,20,40,0,128,82,104,193,0,57,41,1,128,82,105,45,0,185,19,0,128,18,128,2,64,185,202,243,255,151,224,3,19,42,253,123,194,168,243,83,193,168,255,35,3,213,192,3,95,214,232,127,64,178,31,124,0,169,8,12,0,249,1,0,128,82, - 31,16,0,185,31,32,0,185,31,20,0,249,0,80,0,145,82,183,255,23,0,0,0,0,40,0,128,82,31,0,0,249,73,5,128,82,40,192,0,57,41,44,0,185,0,0,128,146,192,3,95,214,0,0,0,0,63,0,0,249,192,3,95,214,31,32,3,213,32,0,128,82,192,3,95,214,127,35,3,213,253,123, - 191,169,128,255,255,208,0,48,6,145,253,123,193,168,255,35,3,213,192,3,95,214,97,0,0,212,127,35,3,213,253,123,191,169,253,3,1,170,160,67,64,57,165,202,255,151,31,32,3,213,253,123,193,168,255,35,3,213,192,3,95,214,97,0,0,212,127,35,3,213,253,123, - 191,169,253,3,1,170,160,67,64,57,155,202,255,151,31,32,3,213,253,123,193,168,255,35,3,213,192,3,95,214,97,0,0,212,127,35,3,213,253,123,191,169,253,3,1,170,74,203,255,151,31,32,3,213,253,123,193,168,255,35,3,213,192,3,95,214,97,0,0,212,127,35, - 3,213,253,123,191,169,253,3,1,170,8,0,64,249,4,1,64,185,229,3,0,170,136,255,255,208,3,193,30,145,161,23,64,185,162,131,65,169,234,202,255,151,31,32,3,213,253,123,193,168,255,35,3,213,192,3,95,214,97,0,0,212,127,35,3,213,253,123,191,169,253,3, - 1,170,8,0,64,249,9,1,64,185,234,0,0,24,63,1,10,107,224,23,159,26,253,123,193,168,255,35,3,213,192,3,95,214,97,0,0,212,5,0,0,192,127,35,3,213,243,83,191,169,253,123,191,169,253,3,1,170,160,47,0,249,177,99,0,145,32,254,159,200,68,217,255,151,168, - 83,66,169,8,56,0,249,147,6,64,249,64,217,255,151,19,48,0,249,177,99,0,145,40,254,223,200,9,1,64,249,51,29,64,249,58,217,255,151,19,52,0,249,177,99,0,145,40,254,223,200,39,0,128,82,6,0,128,210,5,0,128,82,227,3,20,170,164,11,67,169,161,35,64,249, - 0,1,64,249,167,219,255,151,46,217,255,151,31,56,0,249,40,0,128,82,177,67,0,145,40,254,159,136,32,0,128,82,253,123,193,168,243,83,193,168,255,35,3,213,192,3,95,214,97,0,0,212,127,35,3,213,243,15,31,248,253,123,191,169,253,3,1,170,160,23,0,249, - 177,131,0,145,32,254,159,200,168,67,64,57,200,5,0,52,177,131,0,145,40,254,223,200,9,1,64,249,177,99,0,145,41,254,159,200,177,99,0,145,42,254,223,200,9,6,0,24,72,1,64,185,31,1,9,107,97,4,0,84,177,99,0,145,40,254,223,200,9,25,64,185,63,17,0,113, - 193,3,0,84,177,99,0,145,40,254,223,200,201,4,0,24,8,33,64,185,31,1,9,107,160,1,0,84,177,99,0,145,40,254,223,200,41,4,0,24,8,33,64,185,31,1,9,107,224,0,0,84,177,99,0,145,40,254,223,200,137,3,0,24,8,33,64,185,31,1,9,107,129,1,0,84,248,216,255, - 151,177,99,0,145,40,254,223,200,8,16,0,249,177,131,0,145,41,254,223,200,51,5,64,249,241,216,255,151,19,20,0,249,27,216,255,151,31,32,3,213,177,83,0,145,63,254,159,136,177,83,0,145,32,254,223,136,253,123,193,168,243,7,65,248,255,35,3,213,192, - 3,95,214,97,0,0,212,31,32,3,213,99,115,109,224,32,5,147,25,33,5,147,25,34,5,147,25,127,35,3,213,253,123,191,169,253,3,1,170,0,0,128,82,85,225,255,151,31,32,3,213,253,123,193,168,255,35,3,213,192,3,95,214,97,0,0,212,127,35,3,213,253,123,191,169, - 253,3,1,170,168,11,64,249,0,1,64,185,74,225,255,151,31,32,3,213,253,123,193,168,255,35,3,213,192,3,95,214,97,0,0,212,127,35,3,213,253,123,191,169,253,3,1,170,160,19,0,249,8,0,64,249,9,1,64,185,169,23,0,185,104,1,0,24,63,1,8,107,232,23,159,26, - 177,67,0,145,40,254,159,136,177,67,0,145,32,254,223,136,253,123,193,168,255,35,3,213,192,3,95,214,97,0,0,212,99,115,109,224,127,35,3,213,253,123,191,169,253,3,1,170,8,0,64,249,9,1,64,185,170,0,128,82,10,0,184,114,63,1,10,107,224,23,159,26,253, - 123,193,168,255,35,3,213,192,3,95,214,97,0,0,212,127,35,3,213,253,123,191,169,253,3,1,170,160,55,0,249,162,67,0,145,161,15,64,249,170,218,255,151,31,32,3,213,253,123,193,168,255,35,3,213,192,3,95,214,97,0,0,212,127,35,3,213,243,15,31,248,253, - 123,191,169,253,3,1,170,160,27,64,249,13,205,255,151,168,19,64,185,72,3,0,53,137,4,0,24,179,15,64,249,104,2,64,185,31,1,9,107,161,2,0,84,104,26,64,185,31,17,0,113,65,2,0,84,169,3,0,24,104,34,64,185,31,1,9,107,224,0,0,84,73,3,0,24,31,1,9,107, - 128,0,0,84,9,3,0,24,31,1,9,107,1,1,0,84,96,22,64,249,131,205,255,151,160,0,0,52,33,0,128,82,224,3,19,170,77,205,255,151,31,32,3,213,125,216,255,151,168,31,64,249,8,16,0,249,122,216,255,151,168,35,64,249,8,20,0,249,253,123,193,168,243,7,65,248, - 255,35,3,213,192,3,95,214,97,0,0,212,99,115,109,224,32,5,147,25,33,5,147,25,34,5,147,25,127,35,3,213,253,123,191,169,253,3,1,170,137,205,255,151,31,32,3,213,253,123,193,168,255,35,3,213,192,3,95,214,97,0,0,212,127,35,3,213,253,123,191,169,253, - 3,1,170,98,216,255,151,8,48,64,185,31,1,0,113,173,0,0,84,94,216,255,151,8,48,64,185,9,5,0,81,9,48,0,185,253,123,193,168,255,35,3,213,192,3,95,214,97,0,0,212,127,35,3,213,253,123,191,169,253,3,1,170,224,0,128,82,204,224,255,151,31,32,3,213,253, - 123,193,168,255,35,3,213,192,3,95,214,97,0,0,212,127,35,3,213,253,123,191,169,253,3,1,170,160,0,128,82,194,224,255,151,31,32,3,213,253,123,193,168,255,35,3,213,192,3,95,214,97,0,0,212,127,35,3,213,253,123,191,169,253,3,1,170,168,67,64,57,136, - 0,0,52,96,0,128,82,182,224,255,151,31,32,3,213,253,123,193,168,255,35,3,213,192,3,95,214,97,0,0,212,127,35,3,213,253,123,191,169,253,3,1,170,168,11,64,249,0,1,64,249,25,233,255,151,31,32,3,213,253,123,193,168,255,35,3,213,192,3,95,214,97,0,0, - 212,127,35,3,213,253,123,191,169,253,3,1,170,168,31,64,249,0,1,64,185,160,224,255,151,31,32,3,213,253,123,193,168,255,35,3,213,192,3,95,214,97,0,0,212,127,35,3,213,253,123,191,169,253,3,1,170,168,19,64,249,0,1,64,185,149,224,255,151,31,32,3, - 213,253,123,193,168,255,35,3,213,192,3,95,214,97,0,0,212,127,35,3,213,253,123,191,169,253,3,1,170,128,0,128,82,139,224,255,151,31,32,3,213,253,123,193,168,255,35,3,213,192,3,95,214,97,0,0,212,127,35,3,213,253,123,191,169,253,3,1,170,168,11,64, - 249,0,1,64,185,38,242,255,151,31,32,3,213,253,123,193,168,255,35,3,213,192,3,95,214,97,0,0,212,127,35,3,213,253,123,191,169,253,3,1,170,160,19,64,185,28,242,255,151,31,32,3,213,253,123,193,168,255,35,3,213,192,3,95,214,97,0,0,212,127,35,3,213, - 253,123,191,169,253,3,1,170,0,1,128,82,108,224,255,151,31,32,3,213,253,123,193,168,255,35,3,213,192,3,95,214,97,0,0,212,127,35,3,213,253,123,191,169,253,3,1,170,160,11,64,249,208,232,255,151,31,32,3,213,253,123,193,168,255,35,3,213,192,3,95, - 214,97,0,0,212,81,0,0,240,49,66,43,145,22,0,0,20,81,0,0,240,49,98,43,145,19,0,0,20,81,0,0,240,49,130,43,145,16,0,0,20,81,0,0,240,49,162,43,145,13,0,0,20,81,0,0,240,49,194,43,145,10,0,0,20,81,0,0,240,49,226,43,145,7,0,0,20,81,0,0,240,49,2,44, - 145,4,0,0,20,81,0,0,240,49,34,44,145,1,0,0,20,253,123,179,169,253,3,0,145,224,7,1,169,226,15,2,169,228,23,3,169,230,31,4,169,224,135,2,173,226,143,3,173,228,151,4,173,230,159,5,173,225,3,17,170,64,0,0,144,0,224,20,145,144,255,255,176,16,194, - 58,145,0,2,63,214,240,3,0,170,230,159,69,173,228,151,68,173,226,143,67,173,224,135,66,173,230,31,68,169,228,23,67,169,226,15,66,169,224,7,65,169,253,123,205,168,0,2,31,214,81,0,0,240,49,98,44,145,4,0,0,20,81,0,0,240,49,130,44,145,1,0,0,20,253, - 123,179,169,253,3,0,145,224,7,1,169,226,15,2,169,228,23,3,169,230,31,4,169,224,135,2,173,226,143,3,173,228,151,4,173,230,159,5,173,225,3,17,170,64,0,0,144,0,96,21,145,144,255,255,176,16,194,58,145,0,2,63,214,240,3,0,170,230,159,69,173,228,151, - 68,173,226,143,67,173,224,135,66,173,230,31,68,169,228,23,67,169,226,15,66,169,224,7,65,169,253,123,205,168,0,2,31,214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,5,147,25,2,0,0,0,220,210,1,0,1,0,0,0,236,210,1,0,1,0,0,0,24,211,1,0,240,255,255,255,0,0,0,0,5, - 0,0,0,0,0,0,0,0,0,0,0,208,187,1,128,1,0,0,0,224,83,0,128,1,0,0,0,192,83,0,128,1,0,0,0,85,110,107,110,111,119,110,32,101,120,99,101,112,116,105,111,110,0,0,0,0,0,0,0,72,188,1,128,1,0,0,0,224,83,0,128,1,0,0,0,192,83,0,128,1,0,0,0,98,97,100,32, - 97,108,108,111,99,97,116,105,111,110,0,0,200,188,1,128,1,0,0,0,224,83,0,128,1,0,0,0,192,83,0,128,1,0,0,0,98,97,100,32,97,114,114,97,121,32,110,101,119,32,108,101,110,103,116,104,0,0,0,0,80,189,1,128,1,0,0,0,128,85,0,128,1,0,0,0,0,0,0,0,0,0,0, - 0,75,0,69,0,82,0,78,0,69,0,76,0,51,0,50,0,46,0,68,0,76,0,76,0,0,0,0,0,0,0,0,0,65,99,113,117,105,114,101,83,82,87,76,111,99,107,69,120,99,108,117,115,105,118,101,0,82,101,108,101,97,115,101,83,82,87,76,111,99,107,69,120,99,108,117,115,105,118, - 101,0,64,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,240,1,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,196, - 1,128,1,0,0,0,168,196,1,128,1,0,0,0,96,195,1,128,1,0,0,0,79,0,0,0,0,0,0,0,0,5,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,196,1,128,1,0,0,0,184,196,1,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,0,0,128,1, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,32,5,147,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,115,0,128,1,0,0,0,128,122,0,128,1,0,0,0,0,0,0,0,0,0,0,0,16,123,0,128,1,0,0,0,0,0,0,0,0,0,0,0,96,187,0,128,1,0,0,0,160,187,0,128,1,0,0,0,224,122,0,128,1,0,0,0,224,122,0,128,1,0,0,0, - 16,193,0,128,1,0,0,0,144,193,0,128,1,0,0,0,96,194,0,128,1,0,0,0,160,194,0,128,1,0,0,0,0,0,0,0,0,0,0,0,112,123,0,128,1,0,0,0,176,194,0,128,1,0,0,0,16,195,0,128,1,0,0,0,48,203,0,128,1,0,0,0,128,203,0,128,1,0,0,0,48,206,0,128,1,0,0,0,224,122,0, - 128,1,0,0,0,176,206,0,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,122,0,128,1,0,0,0,0,0,0,0,0,0,0,0,240,123,0,128,1,0,0,0,0,0,0,0,0,0,0,0,160,123,0,128,1,0,0,0,224,122,0,128,1,0,0,0,240,122,0,128,1,0,0,0,160,122,0,128,1,0,0,0,224,122,0,128, - 1,0,0,0,109,0,115,0,99,0,111,0,114,0,101,0,101,0,46,0,100,0,108,0,108,0,0,0,67,111,114,69,120,105,116,80,114,111,99,101,115,115,0,0,0,0,0,0,0,0,0,0,34,5,147,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,144,213,1,0,232,255,255,255,0,0,0,0,5,0,0, - 0,0,0,0,0,0,0,0,0,34,5,147,25,1,0,0,0,204,213,1,0,0,0,0,0,0,0,0,0,2,0,0,0,224,213,1,0,224,255,255,255,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,34,5,147,25,1,0,0,0,204,213,1,0,0,0,0,0,0,0,0,0,1,0,0,0,104,214,1,0,240,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0, - 0,0,0,0,34,5,147,25,1,0,0,0,204,213,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,5,0,0,192,11,0,0,0,0,0,0,0,0,0,0,0,29,0,0,192,4,0,0,0,0,0,0,0,0,0,0,0,150,0,0,192,4,0,0,0,0,0,0,0,0,0,0,0,141,0,0,192,8,0, - 0,0,0,0,0,0,0,0,0,0,142,0,0,192,8,0,0,0,0,0,0,0,0,0,0,0,143,0,0,192,8,0,0,0,0,0,0,0,0,0,0,0,144,0,0,192,8,0,0,0,0,0,0,0,0,0,0,0,145,0,0,192,8,0,0,0,0,0,0,0,0,0,0,0,146,0,0,192,8,0,0,0,0,0,0,0,0,0,0,0,147,0,0,192,8,0,0,0,0,0,0,0,0,0,0,0,180,2, - 0,192,8,0,0,0,0,0,0,0,0,0,0,0,181,2,0,192,8,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,200,189,1,128,1,0,0,0,224,83,0,128,1,0,0,0,192,83,0,128,1,0,0,0,98,97,100,32,101,120,99,101,112,116,105,111,110,0,0,0,244,93,1, - 128,1,0,0,0,4,0,0,0,0,0,0,0,0,94,1,128,1,0,0,0,7,0,0,0,0,0,0,0,8,94,1,128,1,0,0,0,1,0,0,0,0,0,0,0,12,94,1,128,1,0,0,0,2,0,0,0,0,0,0,0,16,94,1,128,1,0,0,0,2,0,0,0,0,0,0,0,20,94,1,128,1,0,0,0,1,0,0,0,0,0,0,0,24,94,1,128,1,0,0,0,2,0,0,0,0,0,0,0, - 28,94,1,128,1,0,0,0,2,0,0,0,0,0,0,0,32,94,1,128,1,0,0,0,2,0,0,0,0,0,0,0,40,94,1,128,1,0,0,0,8,0,0,0,0,0,0,0,52,94,1,128,1,0,0,0,2,0,0,0,0,0,0,0,56,94,1,128,1,0,0,0,1,0,0,0,0,0,0,0,60,94,1,128,1,0,0,0,2,0,0,0,0,0,0,0,64,94,1,128,1,0,0,0,2,0,0, - 0,0,0,0,0,68,94,1,128,1,0,0,0,1,0,0,0,0,0,0,0,72,94,1,128,1,0,0,0,1,0,0,0,0,0,0,0,76,94,1,128,1,0,0,0,1,0,0,0,0,0,0,0,80,94,1,128,1,0,0,0,3,0,0,0,0,0,0,0,84,94,1,128,1,0,0,0,1,0,0,0,0,0,0,0,88,94,1,128,1,0,0,0,1,0,0,0,0,0,0,0,92,94,1,128,1,0, - 0,0,1,0,0,0,0,0,0,0,96,94,1,128,1,0,0,0,2,0,0,0,0,0,0,0,100,94,1,128,1,0,0,0,1,0,0,0,0,0,0,0,104,94,1,128,1,0,0,0,2,0,0,0,0,0,0,0,108,94,1,128,1,0,0,0,1,0,0,0,0,0,0,0,112,94,1,128,1,0,0,0,2,0,0,0,0,0,0,0,116,94,1,128,1,0,0,0,1,0,0,0,0,0,0,0, - 120,94,1,128,1,0,0,0,1,0,0,0,0,0,0,0,124,94,1,128,1,0,0,0,1,0,0,0,0,0,0,0,128,94,1,128,1,0,0,0,2,0,0,0,0,0,0,0,132,94,1,128,1,0,0,0,2,0,0,0,0,0,0,0,136,94,1,128,1,0,0,0,2,0,0,0,0,0,0,0,140,94,1,128,1,0,0,0,2,0,0,0,0,0,0,0,144,94,1,128,1,0,0, - 0,2,0,0,0,0,0,0,0,148,94,1,128,1,0,0,0,2,0,0,0,0,0,0,0,152,94,1,128,1,0,0,0,2,0,0,0,0,0,0,0,156,94,1,128,1,0,0,0,3,0,0,0,0,0,0,0,160,94,1,128,1,0,0,0,3,0,0,0,0,0,0,0,164,94,1,128,1,0,0,0,2,0,0,0,0,0,0,0,168,94,1,128,1,0,0,0,2,0,0,0,0,0,0,0,172, - 94,1,128,1,0,0,0,2,0,0,0,0,0,0,0,176,94,1,128,1,0,0,0,9,0,0,0,0,0,0,0,192,94,1,128,1,0,0,0,9,0,0,0,0,0,0,0,208,94,1,128,1,0,0,0,7,0,0,0,0,0,0,0,216,94,1,128,1,0,0,0,8,0,0,0,0,0,0,0,232,94,1,128,1,0,0,0,20,0,0,0,0,0,0,0,0,95,1,128,1,0,0,0,8,0, - 0,0,0,0,0,0,16,95,1,128,1,0,0,0,18,0,0,0,0,0,0,0,40,95,1,128,1,0,0,0,28,0,0,0,0,0,0,0,72,95,1,128,1,0,0,0,29,0,0,0,0,0,0,0,104,95,1,128,1,0,0,0,28,0,0,0,0,0,0,0,136,95,1,128,1,0,0,0,29,0,0,0,0,0,0,0,168,95,1,128,1,0,0,0,28,0,0,0,0,0,0,0,200, - 95,1,128,1,0,0,0,35,0,0,0,0,0,0,0,240,95,1,128,1,0,0,0,26,0,0,0,0,0,0,0,16,96,1,128,1,0,0,0,32,0,0,0,0,0,0,0,56,96,1,128,1,0,0,0,31,0,0,0,0,0,0,0,88,96,1,128,1,0,0,0,38,0,0,0,0,0,0,0,128,96,1,128,1,0,0,0,26,0,0,0,0,0,0,0,160,96,1,128,1,0,0,0, - 15,0,0,0,0,0,0,0,176,96,1,128,1,0,0,0,3,0,0,0,0,0,0,0,180,96,1,128,1,0,0,0,5,0,0,0,0,0,0,0,192,96,1,128,1,0,0,0,15,0,0,0,0,0,0,0,208,96,1,128,1,0,0,0,35,0,0,0,0,0,0,0,244,96,1,128,1,0,0,0,6,0,0,0,0,0,0,0,0,97,1,128,1,0,0,0,9,0,0,0,0,0,0,0,16, - 97,1,128,1,0,0,0,14,0,0,0,0,0,0,0,32,97,1,128,1,0,0,0,26,0,0,0,0,0,0,0,64,97,1,128,1,0,0,0,28,0,0,0,0,0,0,0,96,97,1,128,1,0,0,0,37,0,0,0,0,0,0,0,136,97,1,128,1,0,0,0,36,0,0,0,0,0,0,0,176,97,1,128,1,0,0,0,37,0,0,0,0,0,0,0,216,97,1,128,1,0,0,0, - 43,0,0,0,0,0,0,0,8,98,1,128,1,0,0,0,26,0,0,0,0,0,0,0,40,98,1,128,1,0,0,0,32,0,0,0,0,0,0,0,80,98,1,128,1,0,0,0,34,0,0,0,0,0,0,0,120,98,1,128,1,0,0,0,40,0,0,0,0,0,0,0,168,98,1,128,1,0,0,0,42,0,0,0,0,0,0,0,216,98,1,128,1,0,0,0,27,0,0,0,0,0,0,0, - 248,98,1,128,1,0,0,0,12,0,0,0,0,0,0,0,8,99,1,128,1,0,0,0,17,0,0,0,0,0,0,0,32,99,1,128,1,0,0,0,11,0,0,0,0,0,0,0,242,93,1,128,1,0,0,0,0,0,0,0,0,0,0,0,48,99,1,128,1,0,0,0,17,0,0,0,0,0,0,0,72,99,1,128,1,0,0,0,27,0,0,0,0,0,0,0,104,99,1,128,1,0,0, - 0,18,0,0,0,0,0,0,0,128,99,1,128,1,0,0,0,28,0,0,0,0,0,0,0,160,99,1,128,1,0,0,0,25,0,0,0,0,0,0,0,242,93,1,128,1,0,0,0,0,0,0,0,0,0,0,0,56,94,1,128,1,0,0,0,1,0,0,0,0,0,0,0,76,94,1,128,1,0,0,0,1,0,0,0,0,0,0,0,128,94,1,128,1,0,0,0,2,0,0,0,0,0,0,0, - 120,94,1,128,1,0,0,0,1,0,0,0,0,0,0,0,88,94,1,128,1,0,0,0,1,0,0,0,0,0,0,0,0,95,1,128,1,0,0,0,8,0,0,0,0,0,0,0,192,99,1,128,1,0,0,0,21,0,0,0,0,0,0,0,16,93,1,128,1,0,0,0,8,0,0,0,0,0,0,0,32,93,1,128,1,0,0,0,7,0,0,0,0,0,0,0,40,93,1,128,1,0,0,0,8,0, - 0,0,0,0,0,0,56,93,1,128,1,0,0,0,9,0,0,0,0,0,0,0,72,93,1,128,1,0,0,0,10,0,0,0,0,0,0,0,88,93,1,128,1,0,0,0,10,0,0,0,0,0,0,0,104,93,1,128,1,0,0,0,12,0,0,0,0,0,0,0,120,93,1,128,1,0,0,0,9,0,0,0,0,0,0,0,132,93,1,128,1,0,0,0,6,0,0,0,0,0,0,0,144,93, - 1,128,1,0,0,0,9,0,0,0,0,0,0,0,160,93,1,128,1,0,0,0,9,0,0,0,0,0,0,0,176,93,1,128,1,0,0,0,9,0,0,0,0,0,0,0,192,93,1,128,1,0,0,0,7,0,0,0,0,0,0,0,200,93,1,128,1,0,0,0,10,0,0,0,0,0,0,0,216,93,1,128,1,0,0,0,11,0,0,0,0,0,0,0,232,93,1,128,1,0,0,0,9,0, - 0,0,0,0,0,0,242,93,1,128,1,0,0,0,0,0,0,0,0,0,0,0,95,95,98,97,115,101,100,40,0,0,0,0,0,0,0,0,95,95,99,100,101,99,108,0,95,95,112,97,115,99,97,108,0,0,0,0,0,0,0,0,95,95,115,116,100,99,97,108,108,0,0,0,0,0,0,0,95,95,116,104,105,115,99,97,108,108, - 0,0,0,0,0,0,95,95,102,97,115,116,99,97,108,108,0,0,0,0,0,0,95,95,118,101,99,116,111,114,99,97,108,108,0,0,0,0,95,95,99,108,114,99,97,108,108,0,0,0,95,95,101,97,98,105,0,0,0,0,0,0,95,95,115,119,105,102,116,95,49,0,0,0,0,0,0,0,95,95,115,119,105, - 102,116,95,50,0,0,0,0,0,0,0,95,95,115,119,105,102,116,95,51,0,0,0,0,0,0,0,95,95,112,116,114,54,52,0,95,95,114,101,115,116,114,105,99,116,0,0,0,0,0,0,95,95,117,110,97,108,105,103,110,101,100,0,0,0,0,0,114,101,115,116,114,105,99,116,40,0,0,0,32, - 110,101,119,0,0,0,0,0,0,0,0,32,100,101,108,101,116,101,0,61,0,0,0,62,62,0,0,60,60,0,0,33,0,0,0,61,61,0,0,33,61,0,0,91,93,0,0,0,0,0,0,111,112,101,114,97,116,111,114,0,0,0,0,45,62,0,0,42,0,0,0,43,43,0,0,45,45,0,0,45,0,0,0,43,0,0,0,38,0,0,0,45, - 62,42,0,47,0,0,0,37,0,0,0,60,0,0,0,60,61,0,0,62,0,0,0,62,61,0,0,44,0,0,0,40,41,0,0,126,0,0,0,94,0,0,0,124,0,0,0,38,38,0,0,124,124,0,0,42,61,0,0,43,61,0,0,45,61,0,0,47,61,0,0,37,61,0,0,62,62,61,0,60,60,61,0,38,61,0,0,124,61,0,0,94,61,0,0,96,118, - 102,116,97,98,108,101,39,0,0,0,0,0,0,0,96,118,98,116,97,98,108,101,39,0,0,0,0,0,0,0,96,118,99,97,108,108,39,0,96,116,121,112,101,111,102,39,0,0,0,0,0,0,0,0,96,108,111,99,97,108,32,115,116,97,116,105,99,32,103,117,97,114,100,39,0,0,0,0,96,115, - 116,114,105,110,103,39,0,0,0,0,0,0,0,0,96,118,98,97,115,101,32,100,101,115,116,114,117,99,116,111,114,39,0,0,0,0,0,0,96,118,101,99,116,111,114,32,100,101,108,101,116,105,110,103,32,100,101,115,116,114,117,99,116,111,114,39,0,0,0,0,96,100,101, - 102,97,117,108,116,32,99,111,110,115,116,114,117,99,116,111,114,32,99,108,111,115,117,114,101,39,0,0,0,96,115,99,97,108,97,114,32,100,101,108,101,116,105,110,103,32,100,101,115,116,114,117,99,116,111,114,39,0,0,0,0,96,118,101,99,116,111,114, - 32,99,111,110,115,116,114,117,99,116,111,114,32,105,116,101,114,97,116,111,114,39,0,0,0,96,118,101,99,116,111,114,32,100,101,115,116,114,117,99,116,111,114,32,105,116,101,114,97,116,111,114,39,0,0,0,0,96,118,101,99,116,111,114,32,118,98,97,115, - 101,32,99,111,110,115,116,114,117,99,116,111,114,32,105,116,101,114,97,116,111,114,39,0,0,0,0,0,96,118,105,114,116,117,97,108,32,100,105,115,112,108,97,99,101,109,101,110,116,32,109,97,112,39,0,0,0,0,0,0,96,101,104,32,118,101,99,116,111,114, - 32,99,111,110,115,116,114,117,99,116,111,114,32,105,116,101,114,97,116,111,114,39,0,0,0,0,0,0,0,0,96,101,104,32,118,101,99,116,111,114,32,100,101,115,116,114,117,99,116,111,114,32,105,116,101,114,97,116,111,114,39,0,96,101,104,32,118,101,99, - 116,111,114,32,118,98,97,115,101,32,99,111,110,115,116,114,117,99,116,111,114,32,105,116,101,114,97,116,111,114,39,0,0,96,99,111,112,121,32,99,111,110,115,116,114,117,99,116,111,114,32,99,108,111,115,117,114,101,39,0,0,0,0,0,0,96,117,100,116, - 32,114,101,116,117,114,110,105,110,103,39,0,96,69,72,0,96,82,84,84,73,0,0,0,0,0,0,0,96,108,111,99,97,108,32,118,102,116,97,98,108,101,39,0,96,108,111,99,97,108,32,118,102,116,97,98,108,101,32,99,111,110,115,116,114,117,99,116,111,114,32,99,108, - 111,115,117,114,101,39,0,32,110,101,119,91,93,0,0,0,0,0,0,32,100,101,108,101,116,101,91,93,0,0,0,0,0,0,0,96,111,109,110,105,32,99,97,108,108,115,105,103,39,0,0,96,112,108,97,99,101,109,101,110,116,32,100,101,108,101,116,101,32,99,108,111,115, - 117,114,101,39,0,0,0,0,0,0,96,112,108,97,99,101,109,101,110,116,32,100,101,108,101,116,101,91,93,32,99,108,111,115,117,114,101,39,0,0,0,0,96,109,97,110,97,103,101,100,32,118,101,99,116,111,114,32,99,111,110,115,116,114,117,99,116,111,114,32, - 105,116,101,114,97,116,111,114,39,0,0,0,96,109,97,110,97,103,101,100,32,118,101,99,116,111,114,32,100,101,115,116,114,117,99,116,111,114,32,105,116,101,114,97,116,111,114,39,0,0,0,0,96,101,104,32,118,101,99,116,111,114,32,99,111,112,121,32,99, - 111,110,115,116,114,117,99,116,111,114,32,105,116,101,114,97,116,111,114,39,0,0,0,96,101,104,32,118,101,99,116,111,114,32,118,98,97,115,101,32,99,111,112,121,32,99,111,110,115,116,114,117,99,116,111,114,32,105,116,101,114,97,116,111,114,39,0, - 0,0,0,0,96,100,121,110,97,109,105,99,32,105,110,105,116,105,97,108,105,122,101,114,32,102,111,114,32,39,0,0,0,0,0,0,96,100,121,110,97,109,105,99,32,97,116,101,120,105,116,32,100,101,115,116,114,117,99,116,111,114,32,102,111,114,32,39,0,0,0,0, - 0,0,0,0,96,118,101,99,116,111,114,32,99,111,112,121,32,99,111,110,115,116,114,117,99,116,111,114,32,105,116,101,114,97,116,111,114,39,0,0,0,0,0,0,96,118,101,99,116,111,114,32,118,98,97,115,101,32,99,111,112,121,32,99,111,110,115,116,114,117, - 99,116,111,114,32,105,116,101,114,97,116,111,114,39,0,0,0,0,0,0,0,0,96,109,97,110,97,103,101,100,32,118,101,99,116,111,114,32,99,111,112,121,32,99,111,110,115,116,114,117,99,116,111,114,32,105,116,101,114,97,116,111,114,39,0,0,0,0,0,0,96,108, - 111,99,97,108,32,115,116,97,116,105,99,32,116,104,114,101,97,100,32,103,117,97,114,100,39,0,0,0,0,0,111,112,101,114,97,116,111,114,32,34,34,32,0,0,0,0,111,112,101,114,97,116,111,114,32,99,111,95,97,119,97,105,116,0,0,0,0,0,0,0,111,112,101,114, - 97,116,111,114,60,61,62,0,0,0,0,0,32,84,121,112,101,32,68,101,115,99,114,105,112,116,111,114,39,0,0,0,0,0,0,0,32,66,97,115,101,32,67,108,97,115,115,32,68,101,115,99,114,105,112,116,111,114,32,97,116,32,40,0,0,0,0,0,32,66,97,115,101,32,67,108, - 97,115,115,32,65,114,114,97,121,39,0,0,0,0,0,0,32,67,108,97,115,115,32,72,105,101,114,97,114,99,104,121,32,68,101,115,99,114,105,112,116,111,114,39,0,0,0,0,32,67,111,109,112,108,101,116,101,32,79,98,106,101,99,116,32,76,111,99,97,116,111,114, - 39,0,0,0,0,0,0,0,96,97,110,111,110,121,109,111,117,115,32,110,97,109,101,115,112,97,99,101,39,0,0,0,0,0,0,0,0,0,0,0,144,100,1,128,1,0,0,0,208,100,1,128,1,0,0,0,8,101,1,128,1,0,0,0,64,101,1,128,1,0,0,0,144,101,1,128,1,0,0,0,240,101,1,128,1,0, - 0,0,64,102,1,128,1,0,0,0,128,102,1,128,1,0,0,0,192,102,1,128,1,0,0,0,0,103,1,128,1,0,0,0,64,103,1,128,1,0,0,0,128,103,1,128,1,0,0,0,208,103,1,128,1,0,0,0,48,104,1,128,1,0,0,0,128,104,1,128,1,0,0,0,208,104,1,128,1,0,0,0,232,104,1,128,1,0,0,0, - 0,105,1,128,1,0,0,0,24,105,1,128,1,0,0,0,48,105,1,128,1,0,0,0,120,105,1,128,1,0,0,0,0,0,0,0,0,0,0,0,97,0,112,0,105,0,45,0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,99,0,111,0,114,0,101,0,45,0,100,0,97,0,116,0,101,0,116,0,105,0,109,0,101,0,45,0, - 108,0,49,0,45,0,49,0,45,0,49,0,0,0,97,0,112,0,105,0,45,0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,99,0,111,0,114,0,101,0,45,0,102,0,105,0,108,0,101,0,45,0,108,0,49,0,45,0,50,0,45,0,52,0,0,0,97,0,112,0,105,0,45,0,109,0,115,0,45,0,119,0,105,0,110, - 0,45,0,99,0,111,0,114,0,101,0,45,0,102,0,105,0,108,0,101,0,45,0,108,0,49,0,45,0,50,0,45,0,50,0,0,0,97,0,112,0,105,0,45,0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,99,0,111,0,114,0,101,0,45,0,108,0,111,0,99,0,97,0,108,0,105,0,122,0,97,0,116,0,105, - 0,111,0,110,0,45,0,108,0,49,0,45,0,50,0,45,0,49,0,0,0,0,0,0,0,0,0,0,0,97,0,112,0,105,0,45,0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,99,0,111,0,114,0,101,0,45,0,108,0,111,0,99,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,45,0,111,0,98, - 0,115,0,111,0,108,0,101,0,116,0,101,0,45,0,108,0,49,0,45,0,50,0,45,0,48,0,0,0,0,0,0,0,0,0,97,0,112,0,105,0,45,0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,99,0,111,0,114,0,101,0,45,0,112,0,114,0,111,0,99,0,101,0,115,0,115,0,116,0,104,0,114,0,101, - 0,97,0,100,0,115,0,45,0,108,0,49,0,45,0,49,0,45,0,50,0,0,0,0,0,0,0,97,0,112,0,105,0,45,0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,99,0,111,0,114,0,101,0,45,0,115,0,116,0,114,0,105,0,110,0,103,0,45,0,108,0,49,0,45,0,49,0,45,0,48,0,0,0,0,0,0,0, - 97,0,112,0,105,0,45,0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,99,0,111,0,114,0,101,0,45,0,115,0,121,0,110,0,99,0,104,0,45,0,108,0,49,0,45,0,50,0,45,0,48,0,0,0,0,0,0,0,0,0,97,0,112,0,105,0,45,0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,99,0,111, - 0,114,0,101,0,45,0,115,0,121,0,115,0,105,0,110,0,102,0,111,0,45,0,108,0,49,0,45,0,50,0,45,0,49,0,0,0,0,0,97,0,112,0,105,0,45,0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,99,0,111,0,114,0,101,0,45,0,119,0,105,0,110,0,114,0,116,0,45,0,108,0,49,0, - 45,0,49,0,45,0,48,0,0,0,0,0,0,0,0,0,97,0,112,0,105,0,45,0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,99,0,111,0,114,0,101,0,45,0,120,0,115,0,116,0,97,0,116,0,101,0,45,0,108,0,50,0,45,0,49,0,45,0,48,0,0,0,0,0,0,0,97,0,112,0,105,0,45,0,109,0,115, - 0,45,0,119,0,105,0,110,0,45,0,114,0,116,0,99,0,111,0,114,0,101,0,45,0,110,0,116,0,117,0,115,0,101,0,114,0,45,0,119,0,105,0,110,0,100,0,111,0,119,0,45,0,108,0,49,0,45,0,49,0,45,0,48,0,0,0,0,0,97,0,112,0,105,0,45,0,109,0,115,0,45,0,119,0,105,0, - 110,0,45,0,115,0,101,0,99,0,117,0,114,0,105,0,116,0,121,0,45,0,115,0,121,0,115,0,116,0,101,0,109,0,102,0,117,0,110,0,99,0,116,0,105,0,111,0,110,0,115,0,45,0,108,0,49,0,45,0,49,0,45,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,101,0,120,0,116,0,45,0,109,0, - 115,0,45,0,119,0,105,0,110,0,45,0,110,0,116,0,117,0,115,0,101,0,114,0,45,0,100,0,105,0,97,0,108,0,111,0,103,0,98,0,111,0,120,0,45,0,108,0,49,0,45,0,49,0,45,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,101,0,120,0,116,0,45,0,109,0,115,0,45,0,119,0,105,0,110, - 0,45,0,110,0,116,0,117,0,115,0,101,0,114,0,45,0,119,0,105,0,110,0,100,0,111,0,119,0,115,0,116,0,97,0,116,0,105,0,111,0,110,0,45,0,108,0,49,0,45,0,49,0,45,0,48,0,0,0,0,0,97,0,100,0,118,0,97,0,112,0,105,0,51,0,50,0,0,0,0,0,0,0,0,0,107,0,101,0, - 114,0,110,0,101,0,108,0,51,0,50,0,0,0,0,0,0,0,0,0,107,0,101,0,114,0,110,0,101,0,108,0,98,0,97,0,115,0,101,0,0,0,0,0,110,0,116,0,100,0,108,0,108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,112,0,105,0,45,0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,97,0, - 112,0,112,0,109,0,111,0,100,0,101,0,108,0,45,0,114,0,117,0,110,0,116,0,105,0,109,0,101,0,45,0,108,0,49,0,45,0,49,0,45,0,50,0,0,0,0,0,117,0,115,0,101,0,114,0,51,0,50,0,0,0,0,0,97,0,112,0,105,0,45,0,109,0,115,0,45,0,0,0,101,0,120,0,116,0,45,0, - 109,0,115,0,45,0,0,0,16,0,0,0,0,0,0,0,65,114,101,70,105,108,101,65,112,105,115,65,78,83,73,0,7,0,0,0,16,0,0,0,73,110,105,116,105,97,108,105,122,101,67,114,105,116,105,99,97,108,83,101,99,116,105,111,110,69,120,0,0,0,0,0,3,0,0,0,16,0,0,0,76,67, - 77,97,112,83,116,114,105,110,103,69,120,0,0,0,3,0,0,0,16,0,0,0,76,111,99,97,108,101,78,97,109,101,84,111,76,67,73,68,0,0,0,0,19,0,0,0,65,112,112,80,111,108,105,99,121,71,101,116,80,114,111,99,101,115,115,84,101,114,109,105,110,97,116,105,111, - 110,77,101,116,104,111,100,0,0,0,0,106,0,97,0,45,0,74,0,80,0,0,0,0,0,0,0,122,0,104,0,45,0,67,0,78,0,0,0,0,0,0,0,107,0,111,0,45,0,75,0,82,0,0,0,0,0,0,0,122,0,104,0,45,0,84,0,87,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,109,1,128,1,0,0,0,84,109,1,128,1, - 0,0,0,88,109,1,128,1,0,0,0,92,109,1,128,1,0,0,0,96,109,1,128,1,0,0,0,100,109,1,128,1,0,0,0,104,109,1,128,1,0,0,0,108,109,1,128,1,0,0,0,116,109,1,128,1,0,0,0,128,109,1,128,1,0,0,0,136,109,1,128,1,0,0,0,152,109,1,128,1,0,0,0,164,109,1,128,1,0, - 0,0,176,109,1,128,1,0,0,0,188,109,1,128,1,0,0,0,192,109,1,128,1,0,0,0,196,109,1,128,1,0,0,0,200,109,1,128,1,0,0,0,204,109,1,128,1,0,0,0,208,109,1,128,1,0,0,0,212,109,1,128,1,0,0,0,216,109,1,128,1,0,0,0,220,109,1,128,1,0,0,0,224,109,1,128,1,0, - 0,0,228,109,1,128,1,0,0,0,232,109,1,128,1,0,0,0,240,109,1,128,1,0,0,0,248,109,1,128,1,0,0,0,4,110,1,128,1,0,0,0,12,110,1,128,1,0,0,0,204,109,1,128,1,0,0,0,20,110,1,128,1,0,0,0,28,110,1,128,1,0,0,0,36,110,1,128,1,0,0,0,48,110,1,128,1,0,0,0,64, - 110,1,128,1,0,0,0,72,110,1,128,1,0,0,0,88,110,1,128,1,0,0,0,100,110,1,128,1,0,0,0,104,110,1,128,1,0,0,0,112,110,1,128,1,0,0,0,128,110,1,128,1,0,0,0,152,110,1,128,1,0,0,0,1,0,0,0,0,0,0,0,168,110,1,128,1,0,0,0,176,110,1,128,1,0,0,0,184,110,1,128, - 1,0,0,0,192,110,1,128,1,0,0,0,200,110,1,128,1,0,0,0,208,110,1,128,1,0,0,0,216,110,1,128,1,0,0,0,224,110,1,128,1,0,0,0,240,110,1,128,1,0,0,0,0,111,1,128,1,0,0,0,16,111,1,128,1,0,0,0,40,111,1,128,1,0,0,0,64,111,1,128,1,0,0,0,80,111,1,128,1,0,0, - 0,104,111,1,128,1,0,0,0,112,111,1,128,1,0,0,0,120,111,1,128,1,0,0,0,128,111,1,128,1,0,0,0,136,111,1,128,1,0,0,0,144,111,1,128,1,0,0,0,152,111,1,128,1,0,0,0,160,111,1,128,1,0,0,0,168,111,1,128,1,0,0,0,176,111,1,128,1,0,0,0,184,111,1,128,1,0,0, - 0,192,111,1,128,1,0,0,0,200,111,1,128,1,0,0,0,216,111,1,128,1,0,0,0,240,111,1,128,1,0,0,0,0,112,1,128,1,0,0,0,136,111,1,128,1,0,0,0,16,112,1,128,1,0,0,0,32,112,1,128,1,0,0,0,48,112,1,128,1,0,0,0,64,112,1,128,1,0,0,0,88,112,1,128,1,0,0,0,104, - 112,1,128,1,0,0,0,128,112,1,128,1,0,0,0,148,112,1,128,1,0,0,0,156,112,1,128,1,0,0,0,168,112,1,128,1,0,0,0,192,112,1,128,1,0,0,0,232,112,1,128,1,0,0,0,0,113,1,128,1,0,0,0,83,117,110,0,77,111,110,0,84,117,101,0,87,101,100,0,84,104,117,0,70,114, - 105,0,83,97,116,0,83,117,110,100,97,121,0,0,77,111,110,100,97,121,0,0,0,0,0,0,84,117,101,115,100,97,121,0,87,101,100,110,101,115,100,97,121,0,0,0,0,0,0,0,84,104,117,114,115,100,97,121,0,0,0,0,70,114,105,100,97,121,0,0,0,0,0,0,83,97,116,117,114, - 100,97,121,0,0,0,0,74,97,110,0,70,101,98,0,77,97,114,0,65,112,114,0,77,97,121,0,74,117,110,0,74,117,108,0,65,117,103,0,83,101,112,0,79,99,116,0,78,111,118,0,68,101,99,0,0,0,0,0,74,97,110,117,97,114,121,0,70,101,98,114,117,97,114,121,0,0,0,0, - 77,97,114,99,104,0,0,0,65,112,114,105,108,0,0,0,74,117,110,101,0,0,0,0,74,117,108,121,0,0,0,0,65,117,103,117,115,116,0,0,0,0,0,0,83,101,112,116,101,109,98,101,114,0,0,0,0,0,0,0,79,99,116,111,98,101,114,0,78,111,118,101,109,98,101,114,0,0,0,0, - 0,0,0,0,68,101,99,101,109,98,101,114,0,0,0,0,65,77,0,0,80,77,0,0,0,0,0,0,77,77,47,100,100,47,121,121,0,0,0,0,0,0,0,0,100,100,100,100,44,32,77,77,77,77,32,100,100,44,32,121,121,121,121,0,0,0,0,0,72,72,58,109,109,58,115,115,0,0,0,0,0,0,0,0,83, - 0,117,0,110,0,0,0,77,0,111,0,110,0,0,0,84,0,117,0,101,0,0,0,87,0,101,0,100,0,0,0,84,0,104,0,117,0,0,0,70,0,114,0,105,0,0,0,83,0,97,0,116,0,0,0,83,0,117,0,110,0,100,0,97,0,121,0,0,0,0,0,77,0,111,0,110,0,100,0,97,0,121,0,0,0,0,0,84,0,117,0,101, - 0,115,0,100,0,97,0,121,0,0,0,87,0,101,0,100,0,110,0,101,0,115,0,100,0,97,0,121,0,0,0,0,0,0,0,84,0,104,0,117,0,114,0,115,0,100,0,97,0,121,0,0,0,0,0,0,0,0,0,70,0,114,0,105,0,100,0,97,0,121,0,0,0,0,0,83,0,97,0,116,0,117,0,114,0,100,0,97,0,121,0, - 0,0,0,0,0,0,0,0,74,0,97,0,110,0,0,0,70,0,101,0,98,0,0,0,77,0,97,0,114,0,0,0,65,0,112,0,114,0,0,0,77,0,97,0,121,0,0,0,74,0,117,0,110,0,0,0,74,0,117,0,108,0,0,0,65,0,117,0,103,0,0,0,83,0,101,0,112,0,0,0,79,0,99,0,116,0,0,0,78,0,111,0,118,0,0,0, - 68,0,101,0,99,0,0,0,74,0,97,0,110,0,117,0,97,0,114,0,121,0,0,0,70,0,101,0,98,0,114,0,117,0,97,0,114,0,121,0,0,0,0,0,0,0,0,0,77,0,97,0,114,0,99,0,104,0,0,0,0,0,0,0,65,0,112,0,114,0,105,0,108,0,0,0,0,0,0,0,74,0,117,0,110,0,101,0,0,0,0,0,0,0,0, - 0,74,0,117,0,108,0,121,0,0,0,0,0,0,0,0,0,65,0,117,0,103,0,117,0,115,0,116,0,0,0,0,0,83,0,101,0,112,0,116,0,101,0,109,0,98,0,101,0,114,0,0,0,0,0,0,0,79,0,99,0,116,0,111,0,98,0,101,0,114,0,0,0,78,0,111,0,118,0,101,0,109,0,98,0,101,0,114,0,0,0, - 0,0,0,0,0,0,68,0,101,0,99,0,101,0,109,0,98,0,101,0,114,0,0,0,0,0,65,0,77,0,0,0,0,0,80,0,77,0,0,0,0,0,0,0,0,0,77,0,77,0,47,0,100,0,100,0,47,0,121,0,121,0,0,0,0,0,0,0,0,0,100,0,100,0,100,0,100,0,44,0,32,0,77,0,77,0,77,0,77,0,32,0,100,0,100,0,44, - 0,32,0,121,0,121,0,121,0,121,0,0,0,72,0,72,0,58,0,109,0,109,0,58,0,115,0,115,0,0,0,0,0,0,0,0,0,101,0,110,0,45,0,85,0,83,0,0,0,0,0,0,0,1,0,0,0,22,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,4,0,0,0,24,0,0,0,5,0,0,0,13,0,0,0,6,0,0,0,9,0,0,0,7,0,0,0, - 12,0,0,0,8,0,0,0,12,0,0,0,9,0,0,0,12,0,0,0,10,0,0,0,7,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,22,0,0,0,13,0,0,0,22,0,0,0,15,0,0,0,2,0,0,0,16,0,0,0,13,0,0,0,17,0,0,0,18,0,0,0,18,0,0,0,2,0,0,0,33,0,0,0,13,0,0,0,53,0,0,0,2,0,0,0,65,0,0,0,13,0,0,0,67,0, - 0,0,2,0,0,0,80,0,0,0,17,0,0,0,82,0,0,0,13,0,0,0,83,0,0,0,13,0,0,0,87,0,0,0,22,0,0,0,89,0,0,0,11,0,0,0,108,0,0,0,13,0,0,0,109,0,0,0,32,0,0,0,112,0,0,0,28,0,0,0,114,0,0,0,9,0,0,0,128,0,0,0,10,0,0,0,129,0,0,0,10,0,0,0,130,0,0,0,9,0,0,0,131,0,0, - 0,22,0,0,0,132,0,0,0,13,0,0,0,145,0,0,0,41,0,0,0,158,0,0,0,13,0,0,0,161,0,0,0,2,0,0,0,164,0,0,0,11,0,0,0,167,0,0,0,13,0,0,0,183,0,0,0,17,0,0,0,206,0,0,0,2,0,0,0,215,0,0,0,11,0,0,0,89,4,0,0,42,0,0,0,24,7,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,40,0,40,0,40,0,40,0,40,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,72,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16, - 0,16,0,16,0,16,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,129,0,129,0,129,0,129,0,129,0,129,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,16,0,16,0,16, - 0,16,0,16,0,16,0,130,0,130,0,130,0,130,0,130,0,130,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,2,0,2,0,16,0,16,0,16,0,16,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,129,130,131,132,133,134,135,136,137,138,139,140,141, - 142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202, - 203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,0,1,2,3,4,5,6,7,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118, - 119,120,121,122,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149, - 150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210, - 211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, - 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204, - 205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96, - 65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163, - 164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224, - 225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,0,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,40,0,40,0,40,0,40,0,40,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,72,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,129,1,129,1,129,1,129, - 1,129,1,129,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,16,0,16,0,16,0,16,0,16,0,16,0,130,1,130,1,130,1,130,1,130,1,130,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,16, - 0,16,0,16,0,16,0,32,0,32,0,32,0,32,0,32,0,32,0,40,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,32,0,8,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,18,1,16,0, - 16,0,48,0,16,0,16,0,16,0,16,0,20,0,20,0,16,0,18,1,16,0,16,0,16,0,20,0,18,1,16,0,16,0,16,0,16,0,16,0,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,16,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,2,1, - 2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,16,0,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,208,136,1,128,1,0,0,0,2,0,0,0,0,0,0,0,216,136,1,128,1,0,0,0,3,0,0,0,0,0,0,0,224, - 136,1,128,1,0,0,0,4,0,0,0,0,0,0,0,232,136,1,128,1,0,0,0,5,0,0,0,0,0,0,0,248,136,1,128,1,0,0,0,6,0,0,0,0,0,0,0,0,137,1,128,1,0,0,0,7,0,0,0,0,0,0,0,8,137,1,128,1,0,0,0,8,0,0,0,0,0,0,0,16,137,1,128,1,0,0,0,9,0,0,0,0,0,0,0,24,137,1,128,1,0,0,0,10, - 0,0,0,0,0,0,0,32,137,1,128,1,0,0,0,11,0,0,0,0,0,0,0,40,137,1,128,1,0,0,0,12,0,0,0,0,0,0,0,48,137,1,128,1,0,0,0,13,0,0,0,0,0,0,0,56,137,1,128,1,0,0,0,14,0,0,0,0,0,0,0,64,137,1,128,1,0,0,0,15,0,0,0,0,0,0,0,72,137,1,128,1,0,0,0,16,0,0,0,0,0,0,0, - 80,137,1,128,1,0,0,0,17,0,0,0,0,0,0,0,88,137,1,128,1,0,0,0,18,0,0,0,0,0,0,0,96,137,1,128,1,0,0,0,19,0,0,0,0,0,0,0,104,137,1,128,1,0,0,0,20,0,0,0,0,0,0,0,112,137,1,128,1,0,0,0,21,0,0,0,0,0,0,0,120,137,1,128,1,0,0,0,22,0,0,0,0,0,0,0,128,137,1, - 128,1,0,0,0,24,0,0,0,0,0,0,0,136,137,1,128,1,0,0,0,25,0,0,0,0,0,0,0,144,137,1,128,1,0,0,0,26,0,0,0,0,0,0,0,152,137,1,128,1,0,0,0,27,0,0,0,0,0,0,0,160,137,1,128,1,0,0,0,28,0,0,0,0,0,0,0,168,137,1,128,1,0,0,0,29,0,0,0,0,0,0,0,176,137,1,128,1,0, - 0,0,30,0,0,0,0,0,0,0,184,137,1,128,1,0,0,0,31,0,0,0,0,0,0,0,192,137,1,128,1,0,0,0,32,0,0,0,0,0,0,0,200,137,1,128,1,0,0,0,33,0,0,0,0,0,0,0,208,137,1,128,1,0,0,0,34,0,0,0,0,0,0,0,216,137,1,128,1,0,0,0,35,0,0,0,0,0,0,0,224,137,1,128,1,0,0,0,36, - 0,0,0,0,0,0,0,232,137,1,128,1,0,0,0,37,0,0,0,0,0,0,0,240,137,1,128,1,0,0,0,38,0,0,0,0,0,0,0,248,137,1,128,1,0,0,0,39,0,0,0,0,0,0,0,0,138,1,128,1,0,0,0,41,0,0,0,0,0,0,0,8,138,1,128,1,0,0,0,42,0,0,0,0,0,0,0,16,138,1,128,1,0,0,0,43,0,0,0,0,0,0, - 0,24,138,1,128,1,0,0,0,44,0,0,0,0,0,0,0,32,138,1,128,1,0,0,0,45,0,0,0,0,0,0,0,40,138,1,128,1,0,0,0,47,0,0,0,0,0,0,0,48,138,1,128,1,0,0,0,54,0,0,0,0,0,0,0,56,138,1,128,1,0,0,0,55,0,0,0,0,0,0,0,64,138,1,128,1,0,0,0,56,0,0,0,0,0,0,0,72,138,1,128, - 1,0,0,0,57,0,0,0,0,0,0,0,80,138,1,128,1,0,0,0,62,0,0,0,0,0,0,0,88,138,1,128,1,0,0,0,63,0,0,0,0,0,0,0,96,138,1,128,1,0,0,0,64,0,0,0,0,0,0,0,104,138,1,128,1,0,0,0,65,0,0,0,0,0,0,0,112,138,1,128,1,0,0,0,67,0,0,0,0,0,0,0,120,138,1,128,1,0,0,0,68, - 0,0,0,0,0,0,0,128,138,1,128,1,0,0,0,70,0,0,0,0,0,0,0,136,138,1,128,1,0,0,0,71,0,0,0,0,0,0,0,144,138,1,128,1,0,0,0,73,0,0,0,0,0,0,0,152,138,1,128,1,0,0,0,74,0,0,0,0,0,0,0,160,138,1,128,1,0,0,0,75,0,0,0,0,0,0,0,168,138,1,128,1,0,0,0,78,0,0,0,0, - 0,0,0,176,138,1,128,1,0,0,0,79,0,0,0,0,0,0,0,184,138,1,128,1,0,0,0,80,0,0,0,0,0,0,0,192,138,1,128,1,0,0,0,86,0,0,0,0,0,0,0,200,138,1,128,1,0,0,0,87,0,0,0,0,0,0,0,208,138,1,128,1,0,0,0,90,0,0,0,0,0,0,0,216,138,1,128,1,0,0,0,101,0,0,0,0,0,0,0, - 224,138,1,128,1,0,0,0,127,0,0,0,0,0,0,0,232,138,1,128,1,0,0,0,1,4,0,0,0,0,0,0,240,138,1,128,1,0,0,0,2,4,0,0,0,0,0,0,0,139,1,128,1,0,0,0,3,4,0,0,0,0,0,0,16,139,1,128,1,0,0,0,4,4,0,0,0,0,0,0,120,106,1,128,1,0,0,0,5,4,0,0,0,0,0,0,32,139,1,128,1, - 0,0,0,6,4,0,0,0,0,0,0,48,139,1,128,1,0,0,0,7,4,0,0,0,0,0,0,64,139,1,128,1,0,0,0,8,4,0,0,0,0,0,0,80,139,1,128,1,0,0,0,9,4,0,0,0,0,0,0,0,113,1,128,1,0,0,0,11,4,0,0,0,0,0,0,96,139,1,128,1,0,0,0,12,4,0,0,0,0,0,0,112,139,1,128,1,0,0,0,13,4,0,0,0, - 0,0,0,128,139,1,128,1,0,0,0,14,4,0,0,0,0,0,0,144,139,1,128,1,0,0,0,15,4,0,0,0,0,0,0,160,139,1,128,1,0,0,0,16,4,0,0,0,0,0,0,176,139,1,128,1,0,0,0,17,4,0,0,0,0,0,0,72,106,1,128,1,0,0,0,18,4,0,0,0,0,0,0,104,106,1,128,1,0,0,0,19,4,0,0,0,0,0,0,192, - 139,1,128,1,0,0,0,20,4,0,0,0,0,0,0,208,139,1,128,1,0,0,0,21,4,0,0,0,0,0,0,224,139,1,128,1,0,0,0,22,4,0,0,0,0,0,0,240,139,1,128,1,0,0,0,24,4,0,0,0,0,0,0,0,140,1,128,1,0,0,0,25,4,0,0,0,0,0,0,16,140,1,128,1,0,0,0,26,4,0,0,0,0,0,0,32,140,1,128,1, - 0,0,0,27,4,0,0,0,0,0,0,48,140,1,128,1,0,0,0,28,4,0,0,0,0,0,0,64,140,1,128,1,0,0,0,29,4,0,0,0,0,0,0,80,140,1,128,1,0,0,0,30,4,0,0,0,0,0,0,96,140,1,128,1,0,0,0,31,4,0,0,0,0,0,0,112,140,1,128,1,0,0,0,32,4,0,0,0,0,0,0,128,140,1,128,1,0,0,0,33,4, - 0,0,0,0,0,0,144,140,1,128,1,0,0,0,34,4,0,0,0,0,0,0,160,140,1,128,1,0,0,0,35,4,0,0,0,0,0,0,176,140,1,128,1,0,0,0,36,4,0,0,0,0,0,0,192,140,1,128,1,0,0,0,37,4,0,0,0,0,0,0,208,140,1,128,1,0,0,0,38,4,0,0,0,0,0,0,224,140,1,128,1,0,0,0,39,4,0,0,0,0, - 0,0,240,140,1,128,1,0,0,0,41,4,0,0,0,0,0,0,0,141,1,128,1,0,0,0,42,4,0,0,0,0,0,0,16,141,1,128,1,0,0,0,43,4,0,0,0,0,0,0,32,141,1,128,1,0,0,0,44,4,0,0,0,0,0,0,48,141,1,128,1,0,0,0,45,4,0,0,0,0,0,0,72,141,1,128,1,0,0,0,47,4,0,0,0,0,0,0,88,141,1, - 128,1,0,0,0,50,4,0,0,0,0,0,0,104,141,1,128,1,0,0,0,52,4,0,0,0,0,0,0,120,141,1,128,1,0,0,0,53,4,0,0,0,0,0,0,136,141,1,128,1,0,0,0,54,4,0,0,0,0,0,0,152,141,1,128,1,0,0,0,55,4,0,0,0,0,0,0,168,141,1,128,1,0,0,0,56,4,0,0,0,0,0,0,184,141,1,128,1,0, - 0,0,57,4,0,0,0,0,0,0,200,141,1,128,1,0,0,0,58,4,0,0,0,0,0,0,216,141,1,128,1,0,0,0,59,4,0,0,0,0,0,0,232,141,1,128,1,0,0,0,62,4,0,0,0,0,0,0,248,141,1,128,1,0,0,0,63,4,0,0,0,0,0,0,8,142,1,128,1,0,0,0,64,4,0,0,0,0,0,0,24,142,1,128,1,0,0,0,65,4,0, - 0,0,0,0,0,40,142,1,128,1,0,0,0,67,4,0,0,0,0,0,0,56,142,1,128,1,0,0,0,68,4,0,0,0,0,0,0,80,142,1,128,1,0,0,0,69,4,0,0,0,0,0,0,96,142,1,128,1,0,0,0,70,4,0,0,0,0,0,0,112,142,1,128,1,0,0,0,71,4,0,0,0,0,0,0,128,142,1,128,1,0,0,0,73,4,0,0,0,0,0,0,144, - 142,1,128,1,0,0,0,74,4,0,0,0,0,0,0,160,142,1,128,1,0,0,0,75,4,0,0,0,0,0,0,176,142,1,128,1,0,0,0,76,4,0,0,0,0,0,0,192,142,1,128,1,0,0,0,78,4,0,0,0,0,0,0,208,142,1,128,1,0,0,0,79,4,0,0,0,0,0,0,224,142,1,128,1,0,0,0,80,4,0,0,0,0,0,0,240,142,1,128, - 1,0,0,0,82,4,0,0,0,0,0,0,0,143,1,128,1,0,0,0,86,4,0,0,0,0,0,0,16,143,1,128,1,0,0,0,87,4,0,0,0,0,0,0,32,143,1,128,1,0,0,0,90,4,0,0,0,0,0,0,48,143,1,128,1,0,0,0,101,4,0,0,0,0,0,0,64,143,1,128,1,0,0,0,107,4,0,0,0,0,0,0,80,143,1,128,1,0,0,0,108, - 4,0,0,0,0,0,0,96,143,1,128,1,0,0,0,129,4,0,0,0,0,0,0,112,143,1,128,1,0,0,0,1,8,0,0,0,0,0,0,128,143,1,128,1,0,0,0,4,8,0,0,0,0,0,0,88,106,1,128,1,0,0,0,7,8,0,0,0,0,0,0,144,143,1,128,1,0,0,0,9,8,0,0,0,0,0,0,160,143,1,128,1,0,0,0,10,8,0,0,0,0,0, - 0,176,143,1,128,1,0,0,0,12,8,0,0,0,0,0,0,192,143,1,128,1,0,0,0,16,8,0,0,0,0,0,0,208,143,1,128,1,0,0,0,19,8,0,0,0,0,0,0,224,143,1,128,1,0,0,0,20,8,0,0,0,0,0,0,240,143,1,128,1,0,0,0,22,8,0,0,0,0,0,0,0,144,1,128,1,0,0,0,26,8,0,0,0,0,0,0,16,144, - 1,128,1,0,0,0,29,8,0,0,0,0,0,0,40,144,1,128,1,0,0,0,44,8,0,0,0,0,0,0,56,144,1,128,1,0,0,0,59,8,0,0,0,0,0,0,80,144,1,128,1,0,0,0,62,8,0,0,0,0,0,0,96,144,1,128,1,0,0,0,67,8,0,0,0,0,0,0,112,144,1,128,1,0,0,0,107,8,0,0,0,0,0,0,136,144,1,128,1,0, - 0,0,1,12,0,0,0,0,0,0,152,144,1,128,1,0,0,0,4,12,0,0,0,0,0,0,168,144,1,128,1,0,0,0,7,12,0,0,0,0,0,0,184,144,1,128,1,0,0,0,9,12,0,0,0,0,0,0,200,144,1,128,1,0,0,0,10,12,0,0,0,0,0,0,216,144,1,128,1,0,0,0,12,12,0,0,0,0,0,0,232,144,1,128,1,0,0,0,26, - 12,0,0,0,0,0,0,248,144,1,128,1,0,0,0,59,12,0,0,0,0,0,0,16,145,1,128,1,0,0,0,107,12,0,0,0,0,0,0,32,145,1,128,1,0,0,0,1,16,0,0,0,0,0,0,48,145,1,128,1,0,0,0,4,16,0,0,0,0,0,0,64,145,1,128,1,0,0,0,7,16,0,0,0,0,0,0,80,145,1,128,1,0,0,0,9,16,0,0,0, - 0,0,0,96,145,1,128,1,0,0,0,10,16,0,0,0,0,0,0,112,145,1,128,1,0,0,0,12,16,0,0,0,0,0,0,128,145,1,128,1,0,0,0,26,16,0,0,0,0,0,0,144,145,1,128,1,0,0,0,59,16,0,0,0,0,0,0,160,145,1,128,1,0,0,0,1,20,0,0,0,0,0,0,176,145,1,128,1,0,0,0,4,20,0,0,0,0,0, - 0,192,145,1,128,1,0,0,0,7,20,0,0,0,0,0,0,208,145,1,128,1,0,0,0,9,20,0,0,0,0,0,0,224,145,1,128,1,0,0,0,10,20,0,0,0,0,0,0,240,145,1,128,1,0,0,0,12,20,0,0,0,0,0,0,0,146,1,128,1,0,0,0,26,20,0,0,0,0,0,0,16,146,1,128,1,0,0,0,59,20,0,0,0,0,0,0,40,146, - 1,128,1,0,0,0,1,24,0,0,0,0,0,0,56,146,1,128,1,0,0,0,9,24,0,0,0,0,0,0,72,146,1,128,1,0,0,0,10,24,0,0,0,0,0,0,88,146,1,128,1,0,0,0,12,24,0,0,0,0,0,0,104,146,1,128,1,0,0,0,26,24,0,0,0,0,0,0,120,146,1,128,1,0,0,0,59,24,0,0,0,0,0,0,144,146,1,128, - 1,0,0,0,1,28,0,0,0,0,0,0,160,146,1,128,1,0,0,0,9,28,0,0,0,0,0,0,176,146,1,128,1,0,0,0,10,28,0,0,0,0,0,0,192,146,1,128,1,0,0,0,26,28,0,0,0,0,0,0,208,146,1,128,1,0,0,0,59,28,0,0,0,0,0,0,232,146,1,128,1,0,0,0,1,32,0,0,0,0,0,0,248,146,1,128,1,0, - 0,0,9,32,0,0,0,0,0,0,8,147,1,128,1,0,0,0,10,32,0,0,0,0,0,0,24,147,1,128,1,0,0,0,59,32,0,0,0,0,0,0,40,147,1,128,1,0,0,0,1,36,0,0,0,0,0,0,56,147,1,128,1,0,0,0,9,36,0,0,0,0,0,0,72,147,1,128,1,0,0,0,10,36,0,0,0,0,0,0,88,147,1,128,1,0,0,0,59,36,0, - 0,0,0,0,0,104,147,1,128,1,0,0,0,1,40,0,0,0,0,0,0,120,147,1,128,1,0,0,0,9,40,0,0,0,0,0,0,136,147,1,128,1,0,0,0,10,40,0,0,0,0,0,0,152,147,1,128,1,0,0,0,1,44,0,0,0,0,0,0,168,147,1,128,1,0,0,0,9,44,0,0,0,0,0,0,184,147,1,128,1,0,0,0,10,44,0,0,0,0, - 0,0,200,147,1,128,1,0,0,0,1,48,0,0,0,0,0,0,216,147,1,128,1,0,0,0,9,48,0,0,0,0,0,0,232,147,1,128,1,0,0,0,10,48,0,0,0,0,0,0,248,147,1,128,1,0,0,0,1,52,0,0,0,0,0,0,8,148,1,128,1,0,0,0,9,52,0,0,0,0,0,0,24,148,1,128,1,0,0,0,10,52,0,0,0,0,0,0,40,148, - 1,128,1,0,0,0,1,56,0,0,0,0,0,0,56,148,1,128,1,0,0,0,10,56,0,0,0,0,0,0,72,148,1,128,1,0,0,0,1,60,0,0,0,0,0,0,88,148,1,128,1,0,0,0,10,60,0,0,0,0,0,0,104,148,1,128,1,0,0,0,1,64,0,0,0,0,0,0,120,148,1,128,1,0,0,0,10,64,0,0,0,0,0,0,136,148,1,128,1, - 0,0,0,10,68,0,0,0,0,0,0,152,148,1,128,1,0,0,0,10,72,0,0,0,0,0,0,168,148,1,128,1,0,0,0,10,76,0,0,0,0,0,0,184,148,1,128,1,0,0,0,10,80,0,0,0,0,0,0,200,148,1,128,1,0,0,0,4,124,0,0,0,0,0,0,216,148,1,128,1,0,0,0,26,124,0,0,0,0,0,0,232,148,1,128,1, - 0,0,0,97,0,114,0,0,0,0,0,98,0,103,0,0,0,0,0,99,0,97,0,0,0,0,0,122,0,104,0,45,0,67,0,72,0,83,0,0,0,0,0,99,0,115,0,0,0,0,0,100,0,97,0,0,0,0,0,100,0,101,0,0,0,0,0,101,0,108,0,0,0,0,0,101,0,110,0,0,0,0,0,101,0,115,0,0,0,0,0,102,0,105,0,0,0,0,0,102, - 0,114,0,0,0,0,0,104,0,101,0,0,0,0,0,104,0,117,0,0,0,0,0,105,0,115,0,0,0,0,0,105,0,116,0,0,0,0,0,106,0,97,0,0,0,0,0,107,0,111,0,0,0,0,0,110,0,108,0,0,0,0,0,110,0,111,0,0,0,0,0,112,0,108,0,0,0,0,0,112,0,116,0,0,0,0,0,114,0,111,0,0,0,0,0,114,0, - 117,0,0,0,0,0,104,0,114,0,0,0,0,0,115,0,107,0,0,0,0,0,115,0,113,0,0,0,0,0,115,0,118,0,0,0,0,0,116,0,104,0,0,0,0,0,116,0,114,0,0,0,0,0,117,0,114,0,0,0,0,0,105,0,100,0,0,0,0,0,117,0,107,0,0,0,0,0,98,0,101,0,0,0,0,0,115,0,108,0,0,0,0,0,101,0,116, - 0,0,0,0,0,108,0,118,0,0,0,0,0,108,0,116,0,0,0,0,0,102,0,97,0,0,0,0,0,118,0,105,0,0,0,0,0,104,0,121,0,0,0,0,0,97,0,122,0,0,0,0,0,101,0,117,0,0,0,0,0,109,0,107,0,0,0,0,0,97,0,102,0,0,0,0,0,107,0,97,0,0,0,0,0,102,0,111,0,0,0,0,0,104,0,105,0,0,0, - 0,0,109,0,115,0,0,0,0,0,107,0,107,0,0,0,0,0,107,0,121,0,0,0,0,0,115,0,119,0,0,0,0,0,117,0,122,0,0,0,0,0,116,0,116,0,0,0,0,0,112,0,97,0,0,0,0,0,103,0,117,0,0,0,0,0,116,0,97,0,0,0,0,0,116,0,101,0,0,0,0,0,107,0,110,0,0,0,0,0,109,0,114,0,0,0,0,0, - 115,0,97,0,0,0,0,0,109,0,110,0,0,0,0,0,103,0,108,0,0,0,0,0,107,0,111,0,107,0,0,0,115,0,121,0,114,0,0,0,100,0,105,0,118,0,0,0,0,0,0,0,0,0,0,0,97,0,114,0,45,0,83,0,65,0,0,0,0,0,0,0,98,0,103,0,45,0,66,0,71,0,0,0,0,0,0,0,99,0,97,0,45,0,69,0,83,0, - 0,0,0,0,0,0,99,0,115,0,45,0,67,0,90,0,0,0,0,0,0,0,100,0,97,0,45,0,68,0,75,0,0,0,0,0,0,0,100,0,101,0,45,0,68,0,69,0,0,0,0,0,0,0,101,0,108,0,45,0,71,0,82,0,0,0,0,0,0,0,102,0,105,0,45,0,70,0,73,0,0,0,0,0,0,0,102,0,114,0,45,0,70,0,82,0,0,0,0,0,0, - 0,104,0,101,0,45,0,73,0,76,0,0,0,0,0,0,0,104,0,117,0,45,0,72,0,85,0,0,0,0,0,0,0,105,0,115,0,45,0,73,0,83,0,0,0,0,0,0,0,105,0,116,0,45,0,73,0,84,0,0,0,0,0,0,0,110,0,108,0,45,0,78,0,76,0,0,0,0,0,0,0,110,0,98,0,45,0,78,0,79,0,0,0,0,0,0,0,112,0, - 108,0,45,0,80,0,76,0,0,0,0,0,0,0,112,0,116,0,45,0,66,0,82,0,0,0,0,0,0,0,114,0,111,0,45,0,82,0,79,0,0,0,0,0,0,0,114,0,117,0,45,0,82,0,85,0,0,0,0,0,0,0,104,0,114,0,45,0,72,0,82,0,0,0,0,0,0,0,115,0,107,0,45,0,83,0,75,0,0,0,0,0,0,0,115,0,113,0,45, - 0,65,0,76,0,0,0,0,0,0,0,115,0,118,0,45,0,83,0,69,0,0,0,0,0,0,0,116,0,104,0,45,0,84,0,72,0,0,0,0,0,0,0,116,0,114,0,45,0,84,0,82,0,0,0,0,0,0,0,117,0,114,0,45,0,80,0,75,0,0,0,0,0,0,0,105,0,100,0,45,0,73,0,68,0,0,0,0,0,0,0,117,0,107,0,45,0,85,0, - 65,0,0,0,0,0,0,0,98,0,101,0,45,0,66,0,89,0,0,0,0,0,0,0,115,0,108,0,45,0,83,0,73,0,0,0,0,0,0,0,101,0,116,0,45,0,69,0,69,0,0,0,0,0,0,0,108,0,118,0,45,0,76,0,86,0,0,0,0,0,0,0,108,0,116,0,45,0,76,0,84,0,0,0,0,0,0,0,102,0,97,0,45,0,73,0,82,0,0,0, - 0,0,0,0,118,0,105,0,45,0,86,0,78,0,0,0,0,0,0,0,104,0,121,0,45,0,65,0,77,0,0,0,0,0,0,0,97,0,122,0,45,0,65,0,90,0,45,0,76,0,97,0,116,0,110,0,0,0,0,0,101,0,117,0,45,0,69,0,83,0,0,0,0,0,0,0,109,0,107,0,45,0,77,0,75,0,0,0,0,0,0,0,116,0,110,0,45,0, - 90,0,65,0,0,0,0,0,0,0,120,0,104,0,45,0,90,0,65,0,0,0,0,0,0,0,122,0,117,0,45,0,90,0,65,0,0,0,0,0,0,0,97,0,102,0,45,0,90,0,65,0,0,0,0,0,0,0,107,0,97,0,45,0,71,0,69,0,0,0,0,0,0,0,102,0,111,0,45,0,70,0,79,0,0,0,0,0,0,0,104,0,105,0,45,0,73,0,78,0, - 0,0,0,0,0,0,109,0,116,0,45,0,77,0,84,0,0,0,0,0,0,0,115,0,101,0,45,0,78,0,79,0,0,0,0,0,0,0,109,0,115,0,45,0,77,0,89,0,0,0,0,0,0,0,107,0,107,0,45,0,75,0,90,0,0,0,0,0,0,0,107,0,121,0,45,0,75,0,71,0,0,0,0,0,0,0,115,0,119,0,45,0,75,0,69,0,0,0,0,0, - 0,0,117,0,122,0,45,0,85,0,90,0,45,0,76,0,97,0,116,0,110,0,0,0,0,0,116,0,116,0,45,0,82,0,85,0,0,0,0,0,0,0,98,0,110,0,45,0,73,0,78,0,0,0,0,0,0,0,112,0,97,0,45,0,73,0,78,0,0,0,0,0,0,0,103,0,117,0,45,0,73,0,78,0,0,0,0,0,0,0,116,0,97,0,45,0,73,0, - 78,0,0,0,0,0,0,0,116,0,101,0,45,0,73,0,78,0,0,0,0,0,0,0,107,0,110,0,45,0,73,0,78,0,0,0,0,0,0,0,109,0,108,0,45,0,73,0,78,0,0,0,0,0,0,0,109,0,114,0,45,0,73,0,78,0,0,0,0,0,0,0,115,0,97,0,45,0,73,0,78,0,0,0,0,0,0,0,109,0,110,0,45,0,77,0,78,0,0,0, - 0,0,0,0,99,0,121,0,45,0,71,0,66,0,0,0,0,0,0,0,103,0,108,0,45,0,69,0,83,0,0,0,0,0,0,0,107,0,111,0,107,0,45,0,73,0,78,0,0,0,0,0,115,0,121,0,114,0,45,0,83,0,89,0,0,0,0,0,100,0,105,0,118,0,45,0,77,0,86,0,0,0,0,0,113,0,117,0,122,0,45,0,66,0,79,0, - 0,0,0,0,110,0,115,0,45,0,90,0,65,0,0,0,0,0,0,0,109,0,105,0,45,0,78,0,90,0,0,0,0,0,0,0,97,0,114,0,45,0,73,0,81,0,0,0,0,0,0,0,100,0,101,0,45,0,67,0,72,0,0,0,0,0,0,0,101,0,110,0,45,0,71,0,66,0,0,0,0,0,0,0,101,0,115,0,45,0,77,0,88,0,0,0,0,0,0,0, - 102,0,114,0,45,0,66,0,69,0,0,0,0,0,0,0,105,0,116,0,45,0,67,0,72,0,0,0,0,0,0,0,110,0,108,0,45,0,66,0,69,0,0,0,0,0,0,0,110,0,110,0,45,0,78,0,79,0,0,0,0,0,0,0,112,0,116,0,45,0,80,0,84,0,0,0,0,0,0,0,115,0,114,0,45,0,83,0,80,0,45,0,76,0,97,0,116, - 0,110,0,0,0,0,0,115,0,118,0,45,0,70,0,73,0,0,0,0,0,0,0,97,0,122,0,45,0,65,0,90,0,45,0,67,0,121,0,114,0,108,0,0,0,0,0,115,0,101,0,45,0,83,0,69,0,0,0,0,0,0,0,109,0,115,0,45,0,66,0,78,0,0,0,0,0,0,0,117,0,122,0,45,0,85,0,90,0,45,0,67,0,121,0,114, - 0,108,0,0,0,0,0,113,0,117,0,122,0,45,0,69,0,67,0,0,0,0,0,97,0,114,0,45,0,69,0,71,0,0,0,0,0,0,0,122,0,104,0,45,0,72,0,75,0,0,0,0,0,0,0,100,0,101,0,45,0,65,0,84,0,0,0,0,0,0,0,101,0,110,0,45,0,65,0,85,0,0,0,0,0,0,0,101,0,115,0,45,0,69,0,83,0,0, - 0,0,0,0,0,102,0,114,0,45,0,67,0,65,0,0,0,0,0,0,0,115,0,114,0,45,0,83,0,80,0,45,0,67,0,121,0,114,0,108,0,0,0,0,0,115,0,101,0,45,0,70,0,73,0,0,0,0,0,0,0,113,0,117,0,122,0,45,0,80,0,69,0,0,0,0,0,97,0,114,0,45,0,76,0,89,0,0,0,0,0,0,0,122,0,104,0, - 45,0,83,0,71,0,0,0,0,0,0,0,100,0,101,0,45,0,76,0,85,0,0,0,0,0,0,0,101,0,110,0,45,0,67,0,65,0,0,0,0,0,0,0,101,0,115,0,45,0,71,0,84,0,0,0,0,0,0,0,102,0,114,0,45,0,67,0,72,0,0,0,0,0,0,0,104,0,114,0,45,0,66,0,65,0,0,0,0,0,0,0,115,0,109,0,106,0,45, - 0,78,0,79,0,0,0,0,0,97,0,114,0,45,0,68,0,90,0,0,0,0,0,0,0,122,0,104,0,45,0,77,0,79,0,0,0,0,0,0,0,100,0,101,0,45,0,76,0,73,0,0,0,0,0,0,0,101,0,110,0,45,0,78,0,90,0,0,0,0,0,0,0,101,0,115,0,45,0,67,0,82,0,0,0,0,0,0,0,102,0,114,0,45,0,76,0,85,0, - 0,0,0,0,0,0,98,0,115,0,45,0,66,0,65,0,45,0,76,0,97,0,116,0,110,0,0,0,0,0,115,0,109,0,106,0,45,0,83,0,69,0,0,0,0,0,97,0,114,0,45,0,77,0,65,0,0,0,0,0,0,0,101,0,110,0,45,0,73,0,69,0,0,0,0,0,0,0,101,0,115,0,45,0,80,0,65,0,0,0,0,0,0,0,102,0,114,0, - 45,0,77,0,67,0,0,0,0,0,0,0,115,0,114,0,45,0,66,0,65,0,45,0,76,0,97,0,116,0,110,0,0,0,0,0,115,0,109,0,97,0,45,0,78,0,79,0,0,0,0,0,97,0,114,0,45,0,84,0,78,0,0,0,0,0,0,0,101,0,110,0,45,0,90,0,65,0,0,0,0,0,0,0,101,0,115,0,45,0,68,0,79,0,0,0,0,0, - 0,0,115,0,114,0,45,0,66,0,65,0,45,0,67,0,121,0,114,0,108,0,0,0,0,0,115,0,109,0,97,0,45,0,83,0,69,0,0,0,0,0,97,0,114,0,45,0,79,0,77,0,0,0,0,0,0,0,101,0,110,0,45,0,74,0,77,0,0,0,0,0,0,0,101,0,115,0,45,0,86,0,69,0,0,0,0,0,0,0,115,0,109,0,115,0, - 45,0,70,0,73,0,0,0,0,0,97,0,114,0,45,0,89,0,69,0,0,0,0,0,0,0,101,0,110,0,45,0,67,0,66,0,0,0,0,0,0,0,101,0,115,0,45,0,67,0,79,0,0,0,0,0,0,0,115,0,109,0,110,0,45,0,70,0,73,0,0,0,0,0,97,0,114,0,45,0,83,0,89,0,0,0,0,0,0,0,101,0,110,0,45,0,66,0,90, - 0,0,0,0,0,0,0,101,0,115,0,45,0,80,0,69,0,0,0,0,0,0,0,97,0,114,0,45,0,74,0,79,0,0,0,0,0,0,0,101,0,110,0,45,0,84,0,84,0,0,0,0,0,0,0,101,0,115,0,45,0,65,0,82,0,0,0,0,0,0,0,97,0,114,0,45,0,76,0,66,0,0,0,0,0,0,0,101,0,110,0,45,0,90,0,87,0,0,0,0,0, - 0,0,101,0,115,0,45,0,69,0,67,0,0,0,0,0,0,0,97,0,114,0,45,0,75,0,87,0,0,0,0,0,0,0,101,0,110,0,45,0,80,0,72,0,0,0,0,0,0,0,101,0,115,0,45,0,67,0,76,0,0,0,0,0,0,0,97,0,114,0,45,0,65,0,69,0,0,0,0,0,0,0,101,0,115,0,45,0,85,0,89,0,0,0,0,0,0,0,97,0, - 114,0,45,0,66,0,72,0,0,0,0,0,0,0,101,0,115,0,45,0,80,0,89,0,0,0,0,0,0,0,97,0,114,0,45,0,81,0,65,0,0,0,0,0,0,0,101,0,115,0,45,0,66,0,79,0,0,0,0,0,0,0,101,0,115,0,45,0,83,0,86,0,0,0,0,0,0,0,101,0,115,0,45,0,72,0,78,0,0,0,0,0,0,0,101,0,115,0,45, - 0,78,0,73,0,0,0,0,0,0,0,101,0,115,0,45,0,80,0,82,0,0,0,0,0,0,0,122,0,104,0,45,0,67,0,72,0,84,0,0,0,0,0,115,0,114,0,0,0,0,0,232,138,1,128,1,0,0,0,66,0,0,0,0,0,0,0,56,138,1,128,1,0,0,0,44,0,0,0,0,0,0,0,48,163,1,128,1,0,0,0,113,0,0,0,0,0,0,0,208, - 136,1,128,1,0,0,0,0,0,0,0,0,0,0,0,64,163,1,128,1,0,0,0,216,0,0,0,0,0,0,0,80,163,1,128,1,0,0,0,218,0,0,0,0,0,0,0,96,163,1,128,1,0,0,0,177,0,0,0,0,0,0,0,112,163,1,128,1,0,0,0,160,0,0,0,0,0,0,0,128,163,1,128,1,0,0,0,143,0,0,0,0,0,0,0,144,163,1, - 128,1,0,0,0,207,0,0,0,0,0,0,0,160,163,1,128,1,0,0,0,213,0,0,0,0,0,0,0,176,163,1,128,1,0,0,0,210,0,0,0,0,0,0,0,192,163,1,128,1,0,0,0,169,0,0,0,0,0,0,0,208,163,1,128,1,0,0,0,185,0,0,0,0,0,0,0,224,163,1,128,1,0,0,0,196,0,0,0,0,0,0,0,240,163,1,128, - 1,0,0,0,220,0,0,0,0,0,0,0,0,164,1,128,1,0,0,0,67,0,0,0,0,0,0,0,16,164,1,128,1,0,0,0,204,0,0,0,0,0,0,0,32,164,1,128,1,0,0,0,191,0,0,0,0,0,0,0,48,164,1,128,1,0,0,0,200,0,0,0,0,0,0,0,32,138,1,128,1,0,0,0,41,0,0,0,0,0,0,0,64,164,1,128,1,0,0,0,155, - 0,0,0,0,0,0,0,88,164,1,128,1,0,0,0,107,0,0,0,0,0,0,0,224,137,1,128,1,0,0,0,33,0,0,0,0,0,0,0,112,164,1,128,1,0,0,0,99,0,0,0,0,0,0,0,216,136,1,128,1,0,0,0,1,0,0,0,0,0,0,0,128,164,1,128,1,0,0,0,68,0,0,0,0,0,0,0,144,164,1,128,1,0,0,0,125,0,0,0,0, - 0,0,0,160,164,1,128,1,0,0,0,183,0,0,0,0,0,0,0,224,136,1,128,1,0,0,0,2,0,0,0,0,0,0,0,184,164,1,128,1,0,0,0,69,0,0,0,0,0,0,0,248,136,1,128,1,0,0,0,4,0,0,0,0,0,0,0,200,164,1,128,1,0,0,0,71,0,0,0,0,0,0,0,216,164,1,128,1,0,0,0,135,0,0,0,0,0,0,0,0, - 137,1,128,1,0,0,0,5,0,0,0,0,0,0,0,232,164,1,128,1,0,0,0,72,0,0,0,0,0,0,0,8,137,1,128,1,0,0,0,6,0,0,0,0,0,0,0,248,164,1,128,1,0,0,0,162,0,0,0,0,0,0,0,8,165,1,128,1,0,0,0,145,0,0,0,0,0,0,0,24,165,1,128,1,0,0,0,73,0,0,0,0,0,0,0,40,165,1,128,1,0, - 0,0,179,0,0,0,0,0,0,0,56,165,1,128,1,0,0,0,171,0,0,0,0,0,0,0,224,138,1,128,1,0,0,0,65,0,0,0,0,0,0,0,72,165,1,128,1,0,0,0,139,0,0,0,0,0,0,0,16,137,1,128,1,0,0,0,7,0,0,0,0,0,0,0,88,165,1,128,1,0,0,0,74,0,0,0,0,0,0,0,24,137,1,128,1,0,0,0,8,0,0, - 0,0,0,0,0,104,165,1,128,1,0,0,0,163,0,0,0,0,0,0,0,120,165,1,128,1,0,0,0,205,0,0,0,0,0,0,0,136,165,1,128,1,0,0,0,172,0,0,0,0,0,0,0,152,165,1,128,1,0,0,0,201,0,0,0,0,0,0,0,168,165,1,128,1,0,0,0,146,0,0,0,0,0,0,0,184,165,1,128,1,0,0,0,186,0,0,0, - 0,0,0,0,200,165,1,128,1,0,0,0,197,0,0,0,0,0,0,0,216,165,1,128,1,0,0,0,180,0,0,0,0,0,0,0,232,165,1,128,1,0,0,0,214,0,0,0,0,0,0,0,248,165,1,128,1,0,0,0,208,0,0,0,0,0,0,0,8,166,1,128,1,0,0,0,75,0,0,0,0,0,0,0,24,166,1,128,1,0,0,0,192,0,0,0,0,0,0, - 0,40,166,1,128,1,0,0,0,211,0,0,0,0,0,0,0,32,137,1,128,1,0,0,0,9,0,0,0,0,0,0,0,56,166,1,128,1,0,0,0,209,0,0,0,0,0,0,0,72,166,1,128,1,0,0,0,221,0,0,0,0,0,0,0,88,166,1,128,1,0,0,0,215,0,0,0,0,0,0,0,104,166,1,128,1,0,0,0,202,0,0,0,0,0,0,0,120,166, - 1,128,1,0,0,0,181,0,0,0,0,0,0,0,136,166,1,128,1,0,0,0,193,0,0,0,0,0,0,0,152,166,1,128,1,0,0,0,212,0,0,0,0,0,0,0,168,166,1,128,1,0,0,0,164,0,0,0,0,0,0,0,184,166,1,128,1,0,0,0,173,0,0,0,0,0,0,0,200,166,1,128,1,0,0,0,223,0,0,0,0,0,0,0,216,166,1, - 128,1,0,0,0,147,0,0,0,0,0,0,0,232,166,1,128,1,0,0,0,224,0,0,0,0,0,0,0,248,166,1,128,1,0,0,0,187,0,0,0,0,0,0,0,8,167,1,128,1,0,0,0,206,0,0,0,0,0,0,0,24,167,1,128,1,0,0,0,225,0,0,0,0,0,0,0,40,167,1,128,1,0,0,0,219,0,0,0,0,0,0,0,56,167,1,128,1, - 0,0,0,222,0,0,0,0,0,0,0,72,167,1,128,1,0,0,0,217,0,0,0,0,0,0,0,88,167,1,128,1,0,0,0,198,0,0,0,0,0,0,0,240,137,1,128,1,0,0,0,35,0,0,0,0,0,0,0,104,167,1,128,1,0,0,0,101,0,0,0,0,0,0,0,40,138,1,128,1,0,0,0,42,0,0,0,0,0,0,0,120,167,1,128,1,0,0,0, - 108,0,0,0,0,0,0,0,8,138,1,128,1,0,0,0,38,0,0,0,0,0,0,0,136,167,1,128,1,0,0,0,104,0,0,0,0,0,0,0,40,137,1,128,1,0,0,0,10,0,0,0,0,0,0,0,152,167,1,128,1,0,0,0,76,0,0,0,0,0,0,0,72,138,1,128,1,0,0,0,46,0,0,0,0,0,0,0,168,167,1,128,1,0,0,0,115,0,0,0, - 0,0,0,0,48,137,1,128,1,0,0,0,11,0,0,0,0,0,0,0,184,167,1,128,1,0,0,0,148,0,0,0,0,0,0,0,200,167,1,128,1,0,0,0,165,0,0,0,0,0,0,0,216,167,1,128,1,0,0,0,174,0,0,0,0,0,0,0,232,167,1,128,1,0,0,0,77,0,0,0,0,0,0,0,248,167,1,128,1,0,0,0,182,0,0,0,0,0, - 0,0,8,168,1,128,1,0,0,0,188,0,0,0,0,0,0,0,200,138,1,128,1,0,0,0,62,0,0,0,0,0,0,0,24,168,1,128,1,0,0,0,136,0,0,0,0,0,0,0,144,138,1,128,1,0,0,0,55,0,0,0,0,0,0,0,40,168,1,128,1,0,0,0,127,0,0,0,0,0,0,0,56,137,1,128,1,0,0,0,12,0,0,0,0,0,0,0,56,168, - 1,128,1,0,0,0,78,0,0,0,0,0,0,0,80,138,1,128,1,0,0,0,47,0,0,0,0,0,0,0,72,168,1,128,1,0,0,0,116,0,0,0,0,0,0,0,152,137,1,128,1,0,0,0,24,0,0,0,0,0,0,0,88,168,1,128,1,0,0,0,175,0,0,0,0,0,0,0,104,168,1,128,1,0,0,0,90,0,0,0,0,0,0,0,64,137,1,128,1,0, - 0,0,13,0,0,0,0,0,0,0,120,168,1,128,1,0,0,0,79,0,0,0,0,0,0,0,24,138,1,128,1,0,0,0,40,0,0,0,0,0,0,0,136,168,1,128,1,0,0,0,106,0,0,0,0,0,0,0,208,137,1,128,1,0,0,0,31,0,0,0,0,0,0,0,152,168,1,128,1,0,0,0,97,0,0,0,0,0,0,0,72,137,1,128,1,0,0,0,14,0, - 0,0,0,0,0,0,168,168,1,128,1,0,0,0,80,0,0,0,0,0,0,0,80,137,1,128,1,0,0,0,15,0,0,0,0,0,0,0,184,168,1,128,1,0,0,0,149,0,0,0,0,0,0,0,200,168,1,128,1,0,0,0,81,0,0,0,0,0,0,0,88,137,1,128,1,0,0,0,16,0,0,0,0,0,0,0,216,168,1,128,1,0,0,0,82,0,0,0,0,0, - 0,0,64,138,1,128,1,0,0,0,45,0,0,0,0,0,0,0,232,168,1,128,1,0,0,0,114,0,0,0,0,0,0,0,96,138,1,128,1,0,0,0,49,0,0,0,0,0,0,0,248,168,1,128,1,0,0,0,120,0,0,0,0,0,0,0,168,138,1,128,1,0,0,0,58,0,0,0,0,0,0,0,8,169,1,128,1,0,0,0,130,0,0,0,0,0,0,0,96,137, - 1,128,1,0,0,0,17,0,0,0,0,0,0,0,208,138,1,128,1,0,0,0,63,0,0,0,0,0,0,0,24,169,1,128,1,0,0,0,137,0,0,0,0,0,0,0,40,169,1,128,1,0,0,0,83,0,0,0,0,0,0,0,104,138,1,128,1,0,0,0,50,0,0,0,0,0,0,0,56,169,1,128,1,0,0,0,121,0,0,0,0,0,0,0,0,138,1,128,1,0, - 0,0,37,0,0,0,0,0,0,0,72,169,1,128,1,0,0,0,103,0,0,0,0,0,0,0,248,137,1,128,1,0,0,0,36,0,0,0,0,0,0,0,88,169,1,128,1,0,0,0,102,0,0,0,0,0,0,0,104,169,1,128,1,0,0,0,142,0,0,0,0,0,0,0,48,138,1,128,1,0,0,0,43,0,0,0,0,0,0,0,120,169,1,128,1,0,0,0,109, - 0,0,0,0,0,0,0,136,169,1,128,1,0,0,0,131,0,0,0,0,0,0,0,192,138,1,128,1,0,0,0,61,0,0,0,0,0,0,0,152,169,1,128,1,0,0,0,134,0,0,0,0,0,0,0,176,138,1,128,1,0,0,0,59,0,0,0,0,0,0,0,168,169,1,128,1,0,0,0,132,0,0,0,0,0,0,0,88,138,1,128,1,0,0,0,48,0,0,0, - 0,0,0,0,184,169,1,128,1,0,0,0,157,0,0,0,0,0,0,0,200,169,1,128,1,0,0,0,119,0,0,0,0,0,0,0,216,169,1,128,1,0,0,0,117,0,0,0,0,0,0,0,232,169,1,128,1,0,0,0,85,0,0,0,0,0,0,0,104,137,1,128,1,0,0,0,18,0,0,0,0,0,0,0,248,169,1,128,1,0,0,0,150,0,0,0,0,0, - 0,0,8,170,1,128,1,0,0,0,84,0,0,0,0,0,0,0,24,170,1,128,1,0,0,0,151,0,0,0,0,0,0,0,112,137,1,128,1,0,0,0,19,0,0,0,0,0,0,0,40,170,1,128,1,0,0,0,141,0,0,0,0,0,0,0,136,138,1,128,1,0,0,0,54,0,0,0,0,0,0,0,56,170,1,128,1,0,0,0,126,0,0,0,0,0,0,0,120,137, - 1,128,1,0,0,0,20,0,0,0,0,0,0,0,72,170,1,128,1,0,0,0,86,0,0,0,0,0,0,0,128,137,1,128,1,0,0,0,21,0,0,0,0,0,0,0,88,170,1,128,1,0,0,0,87,0,0,0,0,0,0,0,104,170,1,128,1,0,0,0,152,0,0,0,0,0,0,0,120,170,1,128,1,0,0,0,140,0,0,0,0,0,0,0,136,170,1,128,1, - 0,0,0,159,0,0,0,0,0,0,0,152,170,1,128,1,0,0,0,168,0,0,0,0,0,0,0,136,137,1,128,1,0,0,0,22,0,0,0,0,0,0,0,168,170,1,128,1,0,0,0,88,0,0,0,0,0,0,0,144,137,1,128,1,0,0,0,23,0,0,0,0,0,0,0,184,170,1,128,1,0,0,0,89,0,0,0,0,0,0,0,184,138,1,128,1,0,0,0, - 60,0,0,0,0,0,0,0,200,170,1,128,1,0,0,0,133,0,0,0,0,0,0,0,216,170,1,128,1,0,0,0,167,0,0,0,0,0,0,0,232,170,1,128,1,0,0,0,118,0,0,0,0,0,0,0,248,170,1,128,1,0,0,0,156,0,0,0,0,0,0,0,160,137,1,128,1,0,0,0,25,0,0,0,0,0,0,0,8,171,1,128,1,0,0,0,91,0, - 0,0,0,0,0,0,232,137,1,128,1,0,0,0,34,0,0,0,0,0,0,0,24,171,1,128,1,0,0,0,100,0,0,0,0,0,0,0,40,171,1,128,1,0,0,0,190,0,0,0,0,0,0,0,56,171,1,128,1,0,0,0,195,0,0,0,0,0,0,0,72,171,1,128,1,0,0,0,176,0,0,0,0,0,0,0,88,171,1,128,1,0,0,0,184,0,0,0,0,0, - 0,0,104,171,1,128,1,0,0,0,203,0,0,0,0,0,0,0,120,171,1,128,1,0,0,0,199,0,0,0,0,0,0,0,168,137,1,128,1,0,0,0,26,0,0,0,0,0,0,0,136,171,1,128,1,0,0,0,92,0,0,0,0,0,0,0,232,148,1,128,1,0,0,0,227,0,0,0,0,0,0,0,152,171,1,128,1,0,0,0,194,0,0,0,0,0,0,0, - 176,171,1,128,1,0,0,0,189,0,0,0,0,0,0,0,200,171,1,128,1,0,0,0,166,0,0,0,0,0,0,0,224,171,1,128,1,0,0,0,153,0,0,0,0,0,0,0,176,137,1,128,1,0,0,0,27,0,0,0,0,0,0,0,248,171,1,128,1,0,0,0,154,0,0,0,0,0,0,0,8,172,1,128,1,0,0,0,93,0,0,0,0,0,0,0,112,138, - 1,128,1,0,0,0,51,0,0,0,0,0,0,0,24,172,1,128,1,0,0,0,122,0,0,0,0,0,0,0,216,138,1,128,1,0,0,0,64,0,0,0,0,0,0,0,40,172,1,128,1,0,0,0,138,0,0,0,0,0,0,0,152,138,1,128,1,0,0,0,56,0,0,0,0,0,0,0,56,172,1,128,1,0,0,0,128,0,0,0,0,0,0,0,160,138,1,128,1, - 0,0,0,57,0,0,0,0,0,0,0,72,172,1,128,1,0,0,0,129,0,0,0,0,0,0,0,184,137,1,128,1,0,0,0,28,0,0,0,0,0,0,0,88,172,1,128,1,0,0,0,94,0,0,0,0,0,0,0,104,172,1,128,1,0,0,0,110,0,0,0,0,0,0,0,192,137,1,128,1,0,0,0,29,0,0,0,0,0,0,0,120,172,1,128,1,0,0,0,95, - 0,0,0,0,0,0,0,128,138,1,128,1,0,0,0,53,0,0,0,0,0,0,0,136,172,1,128,1,0,0,0,124,0,0,0,0,0,0,0,216,137,1,128,1,0,0,0,32,0,0,0,0,0,0,0,152,172,1,128,1,0,0,0,98,0,0,0,0,0,0,0,200,137,1,128,1,0,0,0,30,0,0,0,0,0,0,0,168,172,1,128,1,0,0,0,96,0,0,0, - 0,0,0,0,120,138,1,128,1,0,0,0,52,0,0,0,0,0,0,0,184,172,1,128,1,0,0,0,158,0,0,0,0,0,0,0,208,172,1,128,1,0,0,0,123,0,0,0,0,0,0,0,16,138,1,128,1,0,0,0,39,0,0,0,0,0,0,0,232,172,1,128,1,0,0,0,105,0,0,0,0,0,0,0,248,172,1,128,1,0,0,0,111,0,0,0,0,0, - 0,0,8,173,1,128,1,0,0,0,3,0,0,0,0,0,0,0,24,173,1,128,1,0,0,0,226,0,0,0,0,0,0,0,40,173,1,128,1,0,0,0,144,0,0,0,0,0,0,0,56,173,1,128,1,0,0,0,161,0,0,0,0,0,0,0,72,173,1,128,1,0,0,0,178,0,0,0,0,0,0,0,88,173,1,128,1,0,0,0,170,0,0,0,0,0,0,0,104,173, - 1,128,1,0,0,0,70,0,0,0,0,0,0,0,120,173,1,128,1,0,0,0,112,0,0,0,0,0,0,0,97,0,102,0,45,0,122,0,97,0,0,0,0,0,0,0,97,0,114,0,45,0,97,0,101,0,0,0,0,0,0,0,97,0,114,0,45,0,98,0,104,0,0,0,0,0,0,0,97,0,114,0,45,0,100,0,122,0,0,0,0,0,0,0,97,0,114,0,45, - 0,101,0,103,0,0,0,0,0,0,0,97,0,114,0,45,0,105,0,113,0,0,0,0,0,0,0,97,0,114,0,45,0,106,0,111,0,0,0,0,0,0,0,97,0,114,0,45,0,107,0,119,0,0,0,0,0,0,0,97,0,114,0,45,0,108,0,98,0,0,0,0,0,0,0,97,0,114,0,45,0,108,0,121,0,0,0,0,0,0,0,97,0,114,0,45,0, - 109,0,97,0,0,0,0,0,0,0,97,0,114,0,45,0,111,0,109,0,0,0,0,0,0,0,97,0,114,0,45,0,113,0,97,0,0,0,0,0,0,0,97,0,114,0,45,0,115,0,97,0,0,0,0,0,0,0,97,0,114,0,45,0,115,0,121,0,0,0,0,0,0,0,97,0,114,0,45,0,116,0,110,0,0,0,0,0,0,0,97,0,114,0,45,0,121, - 0,101,0,0,0,0,0,0,0,97,0,122,0,45,0,97,0,122,0,45,0,99,0,121,0,114,0,108,0,0,0,0,0,97,0,122,0,45,0,97,0,122,0,45,0,108,0,97,0,116,0,110,0,0,0,0,0,98,0,101,0,45,0,98,0,121,0,0,0,0,0,0,0,98,0,103,0,45,0,98,0,103,0,0,0,0,0,0,0,98,0,110,0,45,0,105, - 0,110,0,0,0,0,0,0,0,98,0,115,0,45,0,98,0,97,0,45,0,108,0,97,0,116,0,110,0,0,0,0,0,99,0,97,0,45,0,101,0,115,0,0,0,0,0,0,0,99,0,115,0,45,0,99,0,122,0,0,0,0,0,0,0,99,0,121,0,45,0,103,0,98,0,0,0,0,0,0,0,100,0,97,0,45,0,100,0,107,0,0,0,0,0,0,0,100, - 0,101,0,45,0,97,0,116,0,0,0,0,0,0,0,100,0,101,0,45,0,99,0,104,0,0,0,0,0,0,0,100,0,101,0,45,0,100,0,101,0,0,0,0,0,0,0,100,0,101,0,45,0,108,0,105,0,0,0,0,0,0,0,100,0,101,0,45,0,108,0,117,0,0,0,0,0,0,0,100,0,105,0,118,0,45,0,109,0,118,0,0,0,0,0, - 101,0,108,0,45,0,103,0,114,0,0,0,0,0,0,0,101,0,110,0,45,0,97,0,117,0,0,0,0,0,0,0,101,0,110,0,45,0,98,0,122,0,0,0,0,0,0,0,101,0,110,0,45,0,99,0,97,0,0,0,0,0,0,0,101,0,110,0,45,0,99,0,98,0,0,0,0,0,0,0,101,0,110,0,45,0,103,0,98,0,0,0,0,0,0,0,101, - 0,110,0,45,0,105,0,101,0,0,0,0,0,0,0,101,0,110,0,45,0,106,0,109,0,0,0,0,0,0,0,101,0,110,0,45,0,110,0,122,0,0,0,0,0,0,0,101,0,110,0,45,0,112,0,104,0,0,0,0,0,0,0,101,0,110,0,45,0,116,0,116,0,0,0,0,0,0,0,101,0,110,0,45,0,117,0,115,0,0,0,0,0,0,0, - 101,0,110,0,45,0,122,0,97,0,0,0,0,0,0,0,101,0,110,0,45,0,122,0,119,0,0,0,0,0,0,0,101,0,115,0,45,0,97,0,114,0,0,0,0,0,0,0,101,0,115,0,45,0,98,0,111,0,0,0,0,0,0,0,101,0,115,0,45,0,99,0,108,0,0,0,0,0,0,0,101,0,115,0,45,0,99,0,111,0,0,0,0,0,0,0, - 101,0,115,0,45,0,99,0,114,0,0,0,0,0,0,0,101,0,115,0,45,0,100,0,111,0,0,0,0,0,0,0,101,0,115,0,45,0,101,0,99,0,0,0,0,0,0,0,101,0,115,0,45,0,101,0,115,0,0,0,0,0,0,0,101,0,115,0,45,0,103,0,116,0,0,0,0,0,0,0,101,0,115,0,45,0,104,0,110,0,0,0,0,0,0, - 0,101,0,115,0,45,0,109,0,120,0,0,0,0,0,0,0,101,0,115,0,45,0,110,0,105,0,0,0,0,0,0,0,101,0,115,0,45,0,112,0,97,0,0,0,0,0,0,0,101,0,115,0,45,0,112,0,101,0,0,0,0,0,0,0,101,0,115,0,45,0,112,0,114,0,0,0,0,0,0,0,101,0,115,0,45,0,112,0,121,0,0,0,0, - 0,0,0,101,0,115,0,45,0,115,0,118,0,0,0,0,0,0,0,101,0,115,0,45,0,117,0,121,0,0,0,0,0,0,0,101,0,115,0,45,0,118,0,101,0,0,0,0,0,0,0,101,0,116,0,45,0,101,0,101,0,0,0,0,0,0,0,101,0,117,0,45,0,101,0,115,0,0,0,0,0,0,0,102,0,97,0,45,0,105,0,114,0,0, - 0,0,0,0,0,102,0,105,0,45,0,102,0,105,0,0,0,0,0,0,0,102,0,111,0,45,0,102,0,111,0,0,0,0,0,0,0,102,0,114,0,45,0,98,0,101,0,0,0,0,0,0,0,102,0,114,0,45,0,99,0,97,0,0,0,0,0,0,0,102,0,114,0,45,0,99,0,104,0,0,0,0,0,0,0,102,0,114,0,45,0,102,0,114,0,0, - 0,0,0,0,0,102,0,114,0,45,0,108,0,117,0,0,0,0,0,0,0,102,0,114,0,45,0,109,0,99,0,0,0,0,0,0,0,103,0,108,0,45,0,101,0,115,0,0,0,0,0,0,0,103,0,117,0,45,0,105,0,110,0,0,0,0,0,0,0,104,0,101,0,45,0,105,0,108,0,0,0,0,0,0,0,104,0,105,0,45,0,105,0,110, - 0,0,0,0,0,0,0,104,0,114,0,45,0,98,0,97,0,0,0,0,0,0,0,104,0,114,0,45,0,104,0,114,0,0,0,0,0,0,0,104,0,117,0,45,0,104,0,117,0,0,0,0,0,0,0,104,0,121,0,45,0,97,0,109,0,0,0,0,0,0,0,105,0,100,0,45,0,105,0,100,0,0,0,0,0,0,0,105,0,115,0,45,0,105,0,115, - 0,0,0,0,0,0,0,105,0,116,0,45,0,99,0,104,0,0,0,0,0,0,0,105,0,116,0,45,0,105,0,116,0,0,0,0,0,0,0,106,0,97,0,45,0,106,0,112,0,0,0,0,0,0,0,107,0,97,0,45,0,103,0,101,0,0,0,0,0,0,0,107,0,107,0,45,0,107,0,122,0,0,0,0,0,0,0,107,0,110,0,45,0,105,0,110, - 0,0,0,0,0,0,0,107,0,111,0,107,0,45,0,105,0,110,0,0,0,0,0,107,0,111,0,45,0,107,0,114,0,0,0,0,0,0,0,107,0,121,0,45,0,107,0,103,0,0,0,0,0,0,0,108,0,116,0,45,0,108,0,116,0,0,0,0,0,0,0,108,0,118,0,45,0,108,0,118,0,0,0,0,0,0,0,109,0,105,0,45,0,110, - 0,122,0,0,0,0,0,0,0,109,0,107,0,45,0,109,0,107,0,0,0,0,0,0,0,109,0,108,0,45,0,105,0,110,0,0,0,0,0,0,0,109,0,110,0,45,0,109,0,110,0,0,0,0,0,0,0,109,0,114,0,45,0,105,0,110,0,0,0,0,0,0,0,109,0,115,0,45,0,98,0,110,0,0,0,0,0,0,0,109,0,115,0,45,0, - 109,0,121,0,0,0,0,0,0,0,109,0,116,0,45,0,109,0,116,0,0,0,0,0,0,0,110,0,98,0,45,0,110,0,111,0,0,0,0,0,0,0,110,0,108,0,45,0,98,0,101,0,0,0,0,0,0,0,110,0,108,0,45,0,110,0,108,0,0,0,0,0,0,0,110,0,110,0,45,0,110,0,111,0,0,0,0,0,0,0,110,0,115,0,45, - 0,122,0,97,0,0,0,0,0,0,0,112,0,97,0,45,0,105,0,110,0,0,0,0,0,0,0,112,0,108,0,45,0,112,0,108,0,0,0,0,0,0,0,112,0,116,0,45,0,98,0,114,0,0,0,0,0,0,0,112,0,116,0,45,0,112,0,116,0,0,0,0,0,0,0,113,0,117,0,122,0,45,0,98,0,111,0,0,0,0,0,113,0,117,0, - 122,0,45,0,101,0,99,0,0,0,0,0,113,0,117,0,122,0,45,0,112,0,101,0,0,0,0,0,114,0,111,0,45,0,114,0,111,0,0,0,0,0,0,0,114,0,117,0,45,0,114,0,117,0,0,0,0,0,0,0,115,0,97,0,45,0,105,0,110,0,0,0,0,0,0,0,115,0,101,0,45,0,102,0,105,0,0,0,0,0,0,0,115,0, - 101,0,45,0,110,0,111,0,0,0,0,0,0,0,115,0,101,0,45,0,115,0,101,0,0,0,0,0,0,0,115,0,107,0,45,0,115,0,107,0,0,0,0,0,0,0,115,0,108,0,45,0,115,0,105,0,0,0,0,0,0,0,115,0,109,0,97,0,45,0,110,0,111,0,0,0,0,0,115,0,109,0,97,0,45,0,115,0,101,0,0,0,0,0, - 115,0,109,0,106,0,45,0,110,0,111,0,0,0,0,0,115,0,109,0,106,0,45,0,115,0,101,0,0,0,0,0,115,0,109,0,110,0,45,0,102,0,105,0,0,0,0,0,115,0,109,0,115,0,45,0,102,0,105,0,0,0,0,0,115,0,113,0,45,0,97,0,108,0,0,0,0,0,0,0,115,0,114,0,45,0,98,0,97,0,45, - 0,99,0,121,0,114,0,108,0,0,0,0,0,115,0,114,0,45,0,98,0,97,0,45,0,108,0,97,0,116,0,110,0,0,0,0,0,115,0,114,0,45,0,115,0,112,0,45,0,99,0,121,0,114,0,108,0,0,0,0,0,115,0,114,0,45,0,115,0,112,0,45,0,108,0,97,0,116,0,110,0,0,0,0,0,115,0,118,0,45, - 0,102,0,105,0,0,0,0,0,0,0,115,0,118,0,45,0,115,0,101,0,0,0,0,0,0,0,115,0,119,0,45,0,107,0,101,0,0,0,0,0,0,0,115,0,121,0,114,0,45,0,115,0,121,0,0,0,0,0,116,0,97,0,45,0,105,0,110,0,0,0,0,0,0,0,116,0,101,0,45,0,105,0,110,0,0,0,0,0,0,0,116,0,104, - 0,45,0,116,0,104,0,0,0,0,0,0,0,116,0,110,0,45,0,122,0,97,0,0,0,0,0,0,0,116,0,114,0,45,0,116,0,114,0,0,0,0,0,0,0,116,0,116,0,45,0,114,0,117,0,0,0,0,0,0,0,117,0,107,0,45,0,117,0,97,0,0,0,0,0,0,0,117,0,114,0,45,0,112,0,107,0,0,0,0,0,0,0,117,0,122, - 0,45,0,117,0,122,0,45,0,99,0,121,0,114,0,108,0,0,0,0,0,117,0,122,0,45,0,117,0,122,0,45,0,108,0,97,0,116,0,110,0,0,0,0,0,118,0,105,0,45,0,118,0,110,0,0,0,0,0,0,0,120,0,104,0,45,0,122,0,97,0,0,0,0,0,0,0,122,0,104,0,45,0,99,0,104,0,115,0,0,0,0, - 0,122,0,104,0,45,0,99,0,104,0,116,0,0,0,0,0,122,0,104,0,45,0,99,0,110,0,0,0,0,0,0,0,122,0,104,0,45,0,104,0,107,0,0,0,0,0,0,0,122,0,104,0,45,0,109,0,111,0,0,0,0,0,0,0,122,0,104,0,45,0,115,0,103,0,0,0,0,0,0,0,122,0,104,0,45,0,116,0,119,0,0,0,0, - 0,0,0,122,0,117,0,45,0,122,0,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,5,147,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,80,222,1,0,112,255,255,255,0,0,0,0,5,0,0,0,80,7,2,128,1,0,0,0,240,7,2,128,1,0,0,0,67,0,79,0,78,0,79,0,85,0,84,0,36,0,0,0,0,0,0, - 0,0,0,0,0,96,59,0,128,1,0,0,0,112,59,0,128,1,0,0,0,176,59,0,128,1,0,0,0,96,60,0,128,1,0,0,0,144,61,0,128,1,0,0,0,0,0,0,0,0,0,0,0,96,59,0,128,1,0,0,0,112,59,0,128,1,0,0,0,176,59,0,128,1,0,0,0,144,119,0,128,1,0,0,0,0,62,0,128,1,0,0,0,69,0,66,0, - 87,0,101,0,98,0,86,0,105,0,101,0,119,0,0,0,0,0,0,0,69,0,66,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,92,0,97,0,114,0,109,0,54,0,52,0,92,0,69,0,109,0,98,0,101,0,100,0,100,0,101,0,100,0,66,0,114,0,111,0,119,0,115,0,101,0,114,0,87,0,101,0,98,0,86, - 0,105,0,101,0,119,0,46,0,100,0,108,0,108,0,0,0,0,0,0,0,0,0,0,0,0,0,123,0,70,0,51,0,48,0,49,0,55,0,50,0,50,0,54,0,45,0,70,0,69,0,50,0,65,0,45,0,52,0,50,0,57,0,53,0,45,0,56,0,66,0,68,0,70,0,45,0,48,0,48,0,67,0,51,0,65,0,57,0,65,0,55,0,69,0,52, - 0,67,0,53,0,125,0,0,0,0,0,123,0,50,0,67,0,68,0,56,0,65,0,48,0,48,0,55,0,45,0,69,0,49,0,56,0,57,0,45,0,52,0,48,0,57,0,68,0,45,0,65,0,50,0,67,0,56,0,45,0,57,0,65,0,70,0,52,0,69,0,70,0,51,0,67,0,55,0,50,0,65,0,65,0,125,0,0,0,0,0,123,0,48,0,68,0, - 53,0,48,0,66,0,70,0,69,0,67,0,45,0,67,0,68,0,54,0,65,0,45,0,52,0,70,0,57,0,65,0,45,0,57,0,54,0,52,0,67,0,45,0,67,0,55,0,52,0,49,0,54,0,69,0,51,0,65,0,67,0,66,0,49,0,48,0,125,0,0,0,0,0,123,0,54,0,53,0,67,0,51,0,53,0,66,0,49,0,52,0,45,0,54,0,67, - 0,49,0,68,0,45,0,52,0,49,0,50,0,50,0,45,0,65,0,67,0,52,0,54,0,45,0,55,0,49,0,52,0,56,0,67,0,67,0,57,0,68,0,54,0,52,0,57,0,55,0,125,0,0,0,0,0,123,0,66,0,69,0,53,0,57,0,69,0,56,0,70,0,68,0,45,0,48,0,56,0,57,0,65,0,45,0,52,0,49,0,49,0,66,0,45,0, - 65,0,51,0,66,0,48,0,45,0,48,0,53,0,49,0,68,0,57,0,69,0,52,0,49,0,55,0,56,0,49,0,56,0,125,0,0,0,0,0,83,0,111,0,102,0,116,0,119,0,97,0,114,0,101,0,92,0,77,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,92,0,69,0,100,0,103,0,101,0,85,0,112,0, - 100,0,97,0,116,0,101,0,92,0,67,0,108,0,105,0,101,0,110,0,116,0,115,0,92,0,123,0,53,0,54,0,69,0,66,0,49,0,56,0,70,0,56,0,45,0,66,0,48,0,48,0,56,0,45,0,52,0,67,0,66,0,68,0,45,0,66,0,54,0,68,0,50,0,45,0,56,0,67,0,57,0,55,0,70,0,69,0,55,0,69,0,57, - 0,48,0,54,0,50,0,125,0,0,0,0,0,0,0,0,0,83,0,111,0,102,0,116,0,119,0,97,0,114,0,101,0,92,0,77,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,92,0,69,0,100,0,103,0,101,0,85,0,112,0,100,0,97,0,116,0,101,0,92,0,67,0,108,0,105,0,101,0,110,0,116, - 0,83,0,116,0,97,0,116,0,101,0,92,0,0,0,0,0,0,0,0,0,0,0,0,0,98,0,101,0,116,0,97,0,0,0,0,0,0,0,0,0,100,0,101,0,118,0,0,0,99,0,97,0,110,0,97,0,114,0,121,0,0,0,0,0,105,0,110,0,116,0,101,0,114,0,110,0,97,0,108,0,0,0,0,0,92,0,0,0,87,101,98,86,105, - 101,119,50,58,32,70,97,105,108,101,100,32,116,111,32,102,105,110,100,32,116,104,101,32,97,112,112,32,101,120,101,32,112,97,116,104,46,10,0,0,0,0,0,87,101,98,86,105,101,119,50,58,32,70,97,105,108,101,100,32,116,111,32,102,105,110,100,32,116,104, - 101,32,87,101,98,86,105,101,119,50,32,99,108,105,101,110,116,32,100,108,108,32,97,116,58,32,0,0,0,10,0,0,0,0,0,0,0,71,101,116,70,105,108,101,86,101,114,115,105,111,110,73,110,102,111,83,105,122,101,87,0,71,101,116,70,105,108,101,86,101,114,115, - 105,111,110,73,110,102,111,87,0,0,0,0,0,86,101,114,81,117,101,114,121,86,97,108,117,101,87,0,0,92,0,83,0,116,0,114,0,105,0,110,0,103,0,70,0,105,0,108,0,101,0,73,0,110,0,102,0,111,0,92,0,48,0,52,0,48,0,57,0,48,0,52,0,66,0,48,0,92,0,80,0,114,0, - 111,0,100,0,117,0,99,0,116,0,86,0,101,0,114,0,115,0,105,0,111,0,110,0,0,0,76,57,162,14,230,150,227,74,143,154,132,115,171,239,55,50,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,87,101,98,86,105,101,119,50,58,32,70,97,105,108,101,100,32,116,111,32,102,105, - 110,100,32,97,110,32,105,110,115,116,97,108,108,101,100,32,87,101,98,86,105,101,119,50,32,114,117,110,116,105,109,101,32,111,114,32,110,111,110,45,115,116,97,98,108,101,32,77,105,99,114,111,115,111,102,116,32,69,100,103,101,32,105,110,115,116, - 97,108,108,97,116,105,111,110,46,10,0,0,0,0,0,0,159,83,141,196,159,227,28,68,174,104,31,102,229,112,189,197,87,101,98,86,105,101,119,50,58,32,115,107,105,112,112,101,100,32,105,110,97,99,99,101,115,115,105,98,108,101,32,0,0,0,0,0,0,0,0,0,97, - 0,112,0,105,0,45,0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,99,0,111,0,114,0,101,0,45,0,118,0,101,0,114,0,115,0,105,0,111,0,110,0,45,0,108,0,49,0,45,0,49,0,45,0,48,0,46,0,100,0,108,0,108,0,0,0,0,0,118,0,101,0,114,0,115,0,105,0,111,0,110,0,46, - 0,100,0,108,0,108,0,0,0,77,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,46,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,50,0,82,0,117,0,110,0,116,0,105,0,109,0,101,0,46,0,83,0,116,0,97,0,98,0,108,0,101,0,95,0,56,0,119,0,101,0,107,0,121,0,98, - 0,51,0,100,0,56,0,98,0,98,0,119,0,101,0,0,0,0,0,77,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,46,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,50,0,82,0,117,0,110,0,116,0,105,0,109,0,101,0,46,0,66,0,101,0,116,0,97,0,95,0,56,0,119,0,101,0,107, - 0,121,0,98,0,51,0,100,0,56,0,98,0,98,0,119,0,101,0,0,0,0,0,0,0,0,0,77,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,46,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,50,0,82,0,117,0,110,0,116,0,105,0,109,0,101,0,46,0,68,0,101,0,118,0,95,0,56,0, - 119,0,101,0,107,0,121,0,98,0,51,0,100,0,56,0,98,0,98,0,119,0,101,0,0,0,0,0,0,0,0,0,0,0,77,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,46,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,50,0,82,0,117,0,110,0,116,0,105,0,109,0,101,0,46,0,67,0,97, - 0,110,0,97,0,114,0,121,0,95,0,56,0,119,0,101,0,107,0,121,0,98,0,51,0,100,0,56,0,98,0,98,0,119,0,101,0,0,0,0,0,77,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,46,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,50,0,82,0,117,0,110,0,116,0,105,0,109, - 0,101,0,46,0,73,0,110,0,116,0,101,0,114,0,110,0,97,0,108,0,95,0,56,0,119,0,101,0,107,0,121,0,98,0,51,0,100,0,56,0,98,0,98,0,119,0,101,0,0,0,0,0,0,0,0,0,108,0,111,0,99,0,97,0,116,0,105,0,111,0,110,0,0,0,0,0,112,0,118,0,0,0,0,0,0,0,0,0,86,0,0, - 0,0,0,0,0,104,2,0,0,0,0,0,0,87,101,98,86,105,101,119,50,58,32,115,107,105,112,112,101,100,32,97,110,32,105,110,99,111,109,112,97,116,105,98,108,101,32,118,101,114,115,105,111,110,32,0,0,46,0,0,0,84,114,121,67,114,101,97,116,101,80,97,99,107, - 97,103,101,68,101,112,101,110,100,101,110,99,121,0,0,0,0,0,0,107,0,101,0,114,0,110,0,101,0,108,0,98,0,97,0,115,0,101,0,46,0,100,0,108,0,108,0,0,0,0,0,65,100,100,80,97,99,107,97,103,101,68,101,112,101,110,100,101,110,99,121,0,0,0,0,71,101,116, - 67,117,114,114,101,110,116,80,97,99,107,97,103,101,73,110,102,111,0,0,0,65,0,68,0,86,0,65,0,80,0,73,0,51,0,50,0,46,0,100,0,108,0,108,0,0,0,0,0,0,0,0,0,69,118,101,110,116,82,101,103,105,115,116,101,114,0,0,0,94,117,109,185,25,3,146,78,162,150, - 35,67,111,70,161,252,71,101,116,67,117,114,114,101,110,116,65,112,112,108,105,99,97,116,105,111,110,85,115,101,114,77,111,100,101,108,73,100,0,0,0,0,0,0,0,0,75,0,101,0,114,0,110,0,101,0,108,0,51,0,50,0,46,0,100,0,108,0,108,0,0,0,0,0,0,0,0,0, - 66,0,114,0,111,0,119,0,115,0,101,0,114,0,69,0,120,0,101,0,99,0,117,0,116,0,97,0,98,0,108,0,101,0,70,0,111,0,108,0,100,0,101,0,114,0,0,0,87,0,69,0,66,0,86,0,73,0,69,0,87,0,50,0,95,0,66,0,82,0,79,0,87,0,83,0,69,0,82,0,95,0,69,0,88,0,69,0,67,0, - 85,0,84,0,65,0,66,0,76,0,69,0,95,0,70,0,79,0,76,0,68,0,69,0,82,0,0,0,0,0,85,0,115,0,101,0,114,0,68,0,97,0,116,0,97,0,70,0,111,0,108,0,100,0,101,0,114,0,0,0,0,0,87,0,69,0,66,0,86,0,73,0,69,0,87,0,50,0,95,0,85,0,83,0,69,0,82,0,95,0,68,0,65,0,84, - 0,65,0,95,0,70,0,79,0,76,0,68,0,69,0,82,0,0,0,0,0,0,0,82,0,101,0,108,0,101,0,97,0,115,0,101,0,67,0,104,0,97,0,110,0,110,0,101,0,108,0,115,0,0,0,87,0,69,0,66,0,86,0,73,0,69,0,87,0,50,0,95,0,82,0,69,0,76,0,69,0,65,0,83,0,69,0,95,0,67,0,72,0,65, - 0,78,0,78,0,69,0,76,0,83,0,0,0,0,0,0,0,67,0,104,0,97,0,110,0,110,0,101,0,108,0,83,0,101,0,97,0,114,0,99,0,104,0,75,0,105,0,110,0,100,0,0,0,0,0,0,0,87,0,69,0,66,0,86,0,73,0,69,0,87,0,50,0,95,0,67,0,72,0,65,0,78,0,78,0,69,0,76,0,95,0,83,0,69,0, - 65,0,82,0,67,0,72,0,95,0,75,0,73,0,78,0,68,0,0,0,0,0,0,0,0,0,82,0,101,0,108,0,101,0,97,0,115,0,101,0,67,0,104,0,97,0,110,0,110,0,101,0,108,0,80,0,114,0,101,0,102,0,101,0,114,0,101,0,110,0,99,0,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,87,0,69,0, - 66,0,86,0,73,0,69,0,87,0,50,0,95,0,82,0,69,0,76,0,69,0,65,0,83,0,69,0,95,0,67,0,72,0,65,0,78,0,78,0,69,0,76,0,95,0,80,0,82,0,69,0,70,0,69,0,82,0,69,0,78,0,67,0,69,0,0,0,115,0,104,0,101,0,108,0,108,0,51,0,50,0,46,0,100,0,108,0,108,0,0,0,71,101, - 116,67,117,114,114,101,110,116,80,114,111,99,101,115,115,69,120,112,108,105,99,105,116,65,112,112,85,115,101,114,77,111,100,101,108,73,68,0,0,0,0,0,0,0,0,0,83,0,111,0,102,0,116,0,119,0,97,0,114,0,101,0,92,0,80,0,111,0,108,0,105,0,99,0,105,0, - 101,0,115,0,92,0,77,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,92,0,69,0,100,0,103,0,101,0,92,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,50,0,92,0,0,0,0,0,42,0,0,0,0,0,0,0,87,0,69,0,66,0,86,0,73,0,69,0,87,0,50,0,95,0,85,0,83,0,69,0,95,0, - 69,0,68,0,71,0,69,0,95,0,86,0,73,0,69,0,87,0,0,0,0,0,49,0,0,0,0,0,0,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,0,0,0,0,0,0,0,0,67,114,101,97,116,101,87,101,98,86,105,101,119,69,110,118,105,114,111,110,109,101,110,116,87,105,116,104,79, - 112,116,105,111,110,115,73,110,116,101,114,110,97,108,0,0,0,0,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,50,0,58,0,32,0,67,0,111,0,114,0,101,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,50,0,69,0,110,0,118,0,105,0,114,0,111,0,110,0,109,0,101,0,110, - 0,116,0,32,0,102,0,97,0,105,0,108,0,101,0,100,0,32,0,119,0,104,0,101,0,110,0,32,0,116,0,114,0,121,0,105,0,110,0,103,0,32,0,116,0,111,0,32,0,99,0,97,0,108,0,108,0,32,0,105,0,110,0,116,0,111,0,32,0,69,0,109,0,98,0,101,0,100,0,100,0,101,0,100,0, - 66,0,114,0,111,0,119,0,115,0,101,0,114,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,46,0,100,0,108,0,108,0,46,0,32,0,104,0,114,0,61,0,48,0,120,0,0,0,10,0,0,0,0,0,0,0,68,108,108,67,97,110,85,110,108,111,97,100,78,111,119,0,87,0,101,0,98,0,86,0,105, - 0,101,0,119,0,50,0,58,0,32,0,67,0,111,0,114,0,101,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,50,0,69,0,110,0,118,0,105,0,114,0,111,0,110,0,109,0,101,0,110,0,116,0,32,0,102,0,97,0,105,0,108,0,101,0,100,0,32,0,119,0,104,0,101,0,110,0,32,0,116,0, - 114,0,121,0,105,0,110,0,103,0,32,0,116,0,111,0,32,0,76,0,111,0,97,0,100,0,76,0,105,0,98,0,114,0,97,0,114,0,121,0,58,0,32,0,104,0,114,0,61,0,48,0,120,0,0,0,0,0,32,0,112,0,97,0,116,0,104,0,61,0,0,0,0,0,0,32,2,128,1,0,0,0,8,32,2,128,1,0,0,0,64, - 251,1,128,1,0,0,0,248,196,1,128,1,0,0,0,0,0,0,0,0,0,48,0,1,0,0,0,0,0,0,0,0,0,0,0,32,250,1,0,248,187,1,0,208,187,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,16,188,1,0,0,0,0,0,0,0,0,0,32,188,1,0,0,0,0,0,0,0,0,0,0,0,0,0,32,250, - 1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,64,0,0,0,248,187,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,248,249,1,0,112,188,1,0,72,188,1,0,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,0,0,136,188,1,0,0,0,0,0,0,0,0,0,160,188,1, - 0,32,188,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,249,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,64,0,0,0,112,188,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,72,250,1,0,240,188,1,0,200,188,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,3,0,0,0,8,189,1,0,0,0,0,0,0,0,0,0,40,189,1,0,160,188,1,0,32,188,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,250,1,0,2,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,64,0,0,0,240,188,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,160,250, - 1,0,120,189,1,0,80,189,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,144,189,1,0,0,0,0,0,0,0,0,0,160,189,1,0,0,0,0,0,0,0,0,0,0,0,0,0,160,250,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,64,0,0,0,120,189,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,120,250,1,0,240,189,1,0,200,189,1,0,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,0,0,8,190,1,0,0,0,0,0,0,0,0,0,32,190,1,0,32,188,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,120,250,1,0,1,0,0,0,0,0,0,0,255,255,255,255, - 0,0,0,0,64,0,0,0,240,189,1,0,0,0,0,0,0,0,0,0,0,0,0,0,69,84,87,48,16,0,0,1,134,14,4,136,43,5,138,187,6,11,2,0,0,0,0,0,0,64,0,0,95,0,0,67,114,101,97,116,101,87,101,98,86,105,101,119,69,110,118,105,114,111,110,109,101,110,116,69,114,114,111,114, - 0,72,82,69,83,85,76,84,0,135,15,67,108,105,101,110,116,68,108,108,70,111,117,110,100,0,132,3,73,110,115,116,97,108,108,101,100,82,117,110,116,105,109,101,0,132,3,80,97,114,116,65,95,80,114,105,118,84,97,103,115,0,10,4,126,221,29,149,255,242, - 63,91,113,55,226,241,160,221,152,4,52,0,77,105,99,114,111,115,111,102,116,46,77,83,69,100,103,101,87,101,98,86,105,101,119,46,76,111,97,100,101,114,0,19,0,1,26,115,80,79,207,137,130,71,179,224,220,232,201,4,118,186,1,0,0,0,0,0,0,0,88,207,211, - 101,0,0,0,0,2,0,0,0,76,0,0,0,68,191,1,0,68,167,1,0,0,0,0,0,88,207,211,101,0,0,0,0,13,0,0,0,208,3,0,0,144,191,1,0,144,167,1,0,82,83,68,83,177,245,175,126,237,156,7,23,76,76,68,32,80,68,66,46,1,0,0,0,68,58,92,97,92,95,119,111,114,107,92,101,92, - 115,114,99,92,111,117,116,92,82,101,108,101,97,115,101,92,87,101,98,86,105,101,119,50,76,111,97,100,101,114,46,100,108,108,46,112,100,98,0,0,79,71,80,0,16,0,0,21,64,0,0,46,116,101,120,116,36,116,101,120,116,0,0,112,81,0,0,236,228,0,0,46,116, - 101,120,116,36,109,110,0,0,0,0,12,58,1,0,8,0,0,0,46,116,101,120,116,36,117,110,108,105,107,101,108,121,0,0,20,58,1,0,172,6,0,0,46,116,101,120,116,36,120,0,0,16,0,0,80,1,0,0,46,116,101,120,116,0,0,0,0,80,1,0,191,98,0,0,46,114,100,97,116,97,36, - 114,100,97,116,97,0,0,0,0,168,187,1,0,40,0,0,0,46,114,100,97,116,97,36,84,0,0,0,0,208,187,1,0,40,2,0,0,46,114,100,97,116,97,36,114,0,0,0,0,72,190,1,0,16,0,0,0,46,114,100,97,116,97,36,122,69,84,87,48,0,0,0,0,88,190,1,0,107,0,0,0,46,114,100,97, - 116,97,36,122,69,84,87,49,0,0,0,0,195,190,1,0,69,0,0,0,46,114,100,97,116,97,36,122,69,84,87,50,0,0,0,0,8,191,1,0,1,0,0,0,46,114,100,97,116,97,36,122,69,84,87,57,0,0,0,0,160,196,1,0,32,0,0,0,46,48,48,99,102,103,0,0,192,196,1,0,8,0,0,0,46,67,82, - 84,36,88,67,65,0,0,0,0,200,196,1,0,8,0,0,0,46,67,82,84,36,88,67,90,0,0,0,0,208,196,1,0,8,0,0,0,46,67,82,84,36,88,73,65,0,0,0,0,216,196,1,0,16,0,0,0,46,67,82,84,36,88,73,67,0,0,0,0,232,196,1,0,8,0,0,0,46,67,82,84,36,88,73,90,0,0,0,0,240,196,1, - 0,8,0,0,0,46,67,82,84,36,88,76,65,0,0,0,0,248,196,1,0,8,0,0,0,46,67,82,84,36,88,76,90,0,0,0,0,0,197,1,0,8,0,0,0,46,67,82,84,36,88,80,65,0,0,0,0,8,197,1,0,16,0,0,0,46,67,82,84,36,88,80,88,0,0,0,0,24,197,1,0,8,0,0,0,46,67,82,84,36,88,80,88,65, - 0,0,0,32,197,1,0,8,0,0,0,46,67,82,84,36,88,80,90,0,0,0,0,40,197,1,0,8,0,0,0,46,67,82,84,36,88,84,65,0,0,0,0,48,197,1,0,8,0,0,0,46,67,82,84,36,88,84,90,0,0,0,0,241,199,1,0,40,0,0,0,46,105,100,97,116,97,36,50,0,0,0,0,32,200,1,0,104,2,0,0,46,105, - 100,97,116,97,36,52,0,0,0,0,136,202,1,0,104,2,0,0,46,105,100,97,116,97,36,53,0,0,0,0,240,204,1,0,166,5,0,0,46,105,100,97,116,97,36,54,0,0,0,0,150,210,1,0,13,0,0,0,46,105,100,97,116,97,36,55,0,0,0,0,168,210,1,0,8,0,0,0,46,114,116,99,36,73,65, - 65,0,0,0,0,176,210,1,0,8,0,0,0,46,114,116,99,36,73,90,90,0,0,0,0,184,210,1,0,8,0,0,0,46,114,116,99,36,84,65,65,0,0,0,0,192,210,1,0,8,0,0,0,46,114,116,99,36,84,90,90,0,0,0,0,200,210,1,0,172,15,0,0,46,120,100,97,116,97,0,0,144,226,1,0,40,1,0,0, - 46,120,100,97,116,97,36,120,0,0,0,0,0,80,1,0,73,8,0,0,46,114,100,97,116,97,0,0,0,240,1,0,176,9,0,0,46,100,97,116,97,36,100,97,116,97,0,0,248,249,1,0,159,0,0,0,46,100,97,116,97,36,114,0,160,250,1,0,32,0,0,0,46,100,97,116,97,36,114,115,0,0,0,0, - 48,251,1,0,115,16,0,0,46,98,115,115,0,0,0,0,0,240,1,0,112,0,0,0,46,100,97,116,97,0,0,0,0,16,2,0,208,11,0,0,46,112,100,97,116,97,36,112,100,97,116,97,0,0,0,0,0,32,2,0,1,0,0,0,46,116,108,115,36,116,108,115,0,0,0,0,4,32,2,0,4,0,0,0,46,116,108,115, - 36,0,0,0,8,32,2,0,1,0,0,0,46,116,108,115,36,90,90,90,0,0,0,0,0,48,2,0,88,0,0,0,46,114,115,114,99,36,48,49,0,0,0,0,96,48,2,0,40,5,0,0,46,114,115,114,99,36,48,50,0,0,0,0,0,16,0,0,64,16,0,0,64,17,0,0,96,18,0,0,124,18,0,0,128,18,0,0,212,18,0,0,48, - 19,0,0,80,19,0,0,128,19,0,0,160,19,0,0,0,20,0,0,0,21,0,0,96,21,0,0,128,22,0,0,144,22,0,0,224,22,0,0,32,23,0,0,96,23,0,0,112,23,0,0,176,23,0,0,240,23,0,0,64,24,0,0,128,24,0,0,48,25,0,0,72,25,0,0,128,25,0,0,32,27,0,0,80,31,0,0,56,32,0,0,160,49, - 0,0,32,54,0,0,48,54,0,0,32,55,0,0,192,56,0,0,96,59,0,0,112,59,0,0,176,59,0,0,96,60,0,0,144,61,0,0,0,62,0,0,192,83,0,0,224,83,0,0,128,85,0,0,176,87,0,0,192,89,0,0,96,105,0,0,128,115,0,0,144,119,0,0,128,122,0,0,160,122,0,0,224,122,0,0,240,122, - 0,0,16,123,0,0,112,123,0,0,160,123,0,0,240,123,0,0,240,161,0,0,224,165,0,0,96,187,0,0,160,187,0,0,16,193,0,0,144,193,0,0,96,194,0,0,160,194,0,0,176,194,0,0,16,195,0,0,32,199,0,0,48,203,0,0,128,203,0,0,48,206,0,0,176,206,0,0,0,228,0,0,48,229, - 0,0,208,243,0,0,16,253,0,0,144,14,1,0,0,44,1,0,32,55,1,0,0,0,0,0,96,105,0,128,1,0,0,0,0,16,0,128,1,0,0,0,0,0,0,0,0,0,0,0,160,19,0,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,14,1,128,1,0,0,0,0,228,0,128,1,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,253,0,128,1,0,0,0,32,55,1,128,1,0,0,0,48,229,0,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,170,198,1,0,192,250,1,0,208,250,1,0,152,197,1,0,0,0,0,0,0,0,0,0,0,0,0, - 0,1,0,0,0,183,198,1,0,200,250,1,0,24,251,1,0,224,197,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,197,1,0,0,0,0,0,8,198,1,0,0,0,0,0,30,198,1,0,0,0,0,0,48,198,1,0,0,0,0,0,70,198,1,0,0,0,0,0,84, - 198,1,0,0,0,0,0,100,198,1,0,0,0,0,0,116,198,1,0,0,0,0,0,0,0,0,0,0,0,0,0,136,198,1,0,0,0,0,0,154,198,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,69,118,101,110,116,82,101,103,105,115,116,101,114,0,0,0,69,118,101,110,116,83,101,116,73,110,102,111,114,109, - 97,116,105,111,110,0,0,0,69,118,101,110,116,85,110,114,101,103,105,115,116,101,114,0,0,0,69,118,101,110,116,87,114,105,116,101,84,114,97,110,115,102,101,114,0,0,0,0,82,101,103,67,108,111,115,101,75,101,121,0,0,0,82,101,103,71,101,116,86,97,108, - 117,101,87,0,0,0,0,82,101,103,79,112,101,110,75,101,121,69,120,87,0,0,0,82,101,103,81,117,101,114,121,86,97,108,117,101,69,120,87,0,0,0,0,67,111,84,97,115,107,77,101,109,65,108,108,111,99,0,0,0,0,67,111,84,97,115,107,77,101,109,70,114,101,101, - 0,65,68,86,65,80,73,51,50,46,100,108,108,0,111,108,101,51,50,46,100,108,108,0,0,0,0,0,0,0,0,0,0,0,0,0,233,198,1,0,1,0,0,0,5,0,0,0,5,0,0,0,252,198,1,0,16,199,1,0,36,199,1,0,87,101,98,86,105,101,119,50,76,111,97,100,101,114,46,100,108,108,0,32, - 55,0,0,192,56,0,0,160,49,0,0,32,54,0,0,48,54,0,0,46,199,1,0,69,199,1,0,99,199,1,0,140,199,1,0,185,199,1,0,0,0,1,0,2,0,3,0,4,0,67,111,109,112,97,114,101,66,114,111,119,115,101,114,86,101,114,115,105,111,110,115,0,67,114,101,97,116,101,67,111, - 114,101,87,101,98,86,105,101,119,50,69,110,118,105,114,111,110,109,101,110,116,0,67,114,101,97,116,101,67,111,114,101,87,101,98,86,105,101,119,50,69,110,118,105,114,111,110,109,101,110,116,87,105,116,104,79,112,116,105,111,110,115,0,71,101,116, - 65,118,97,105,108,97,98,108,101,67,111,114,101,87,101,98,86,105,101,119,50,66,114,111,119,115,101,114,86,101,114,115,105,111,110,83,116,114,105,110,103,0,71,101,116,65,118,97,105,108,97,98,108,101,67,111,114,101,87,101,98,86,105,101,119,50,66, - 114,111,119,115,101,114,86,101,114,115,105,111,110,83,116,114,105,110,103,87,105,116,104,79,112,116,105,111,110,115,0,32,200,1,0,0,0,0,0,0,0,0,0,150,210,1,0,136,202,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,204,1,0,0,0,0, - 0,10,205,1,0,0,0,0,0,24,205,1,0,0,0,0,0,38,205,1,0,0,0,0,0,62,205,1,0,0,0,0,0,78,205,1,0,0,0,0,0,102,205,1,0,0,0,0,0,116,205,1,0,0,0,0,0,128,205,1,0,0,0,0,0,148,205,1,0,0,0,0,0,164,205,1,0,0,0,0,0,176,205,1,0,0,0,0,0,186,205,1,0,0,0,0,0,200, - 205,1,0,0,0,0,0,214,205,1,0,0,0,0,0,234,205,1,0,0,0,0,0,4,206,1,0,0,0,0,0,18,206,1,0,0,0,0,0,28,206,1,0,0,0,0,0,40,206,1,0,0,0,0,0,58,206,1,0,0,0,0,0,76,206,1,0,0,0,0,0,94,206,1,0,0,0,0,0,116,206,1,0,0,0,0,0,136,206,1,0,0,0,0,0,158,206,1,0,0, - 0,0,0,180,206,1,0,0,0,0,0,206,206,1,0,0,0,0,0,232,206,1,0,0,0,0,0,254,206,1,0,0,0,0,0,12,207,1,0,0,0,0,0,28,207,1,0,0,0,0,0,50,207,1,0,0,0,0,0,72,207,1,0,0,0,0,0,92,207,1,0,0,0,0,0,104,207,1,0,0,0,0,0,122,207,1,0,0,0,0,0,140,207,1,0,0,0,0,0, - 158,207,1,0,0,0,0,0,174,207,1,0,0,0,0,0,192,207,1,0,0,0,0,0,208,207,1,0,0,0,0,0,234,207,1,0,0,0,0,0,246,207,1,0,0,0,0,0,2,208,1,0,0,0,0,0,16,208,1,0,0,0,0,0,28,208,1,0,0,0,0,0,68,208,1,0,0,0,0,0,98,208,1,0,0,0,0,0,120,208,1,0,0,0,0,0,144,208, - 1,0,0,0,0,0,162,208,1,0,0,0,0,0,178,208,1,0,0,0,0,0,202,208,1,0,0,0,0,0,220,208,1,0,0,0,0,0,238,208,1,0,0,0,0,0,254,208,1,0,0,0,0,0,20,209,1,0,0,0,0,0,42,209,1,0,0,0,0,0,64,209,1,0,0,0,0,0,90,209,1,0,0,0,0,0,108,209,1,0,0,0,0,0,134,209,1,0,0, - 0,0,0,160,209,1,0,0,0,0,0,180,209,1,0,0,0,0,0,194,209,1,0,0,0,0,0,214,209,1,0,0,0,0,0,230,209,1,0,0,0,0,0,246,209,1,0,0,0,0,0,18,210,1,0,0,0,0,0,38,210,1,0,0,0,0,0,56,210,1,0,0,0,0,0,72,210,1,0,0,0,0,0,100,210,1,0,0,0,0,0,122,210,1,0,0,0,0,0, - 138,210,1,0,0,0,0,0,0,0,0,0,0,0,0,0,240,204,1,0,0,0,0,0,10,205,1,0,0,0,0,0,24,205,1,0,0,0,0,0,38,205,1,0,0,0,0,0,62,205,1,0,0,0,0,0,78,205,1,0,0,0,0,0,102,205,1,0,0,0,0,0,116,205,1,0,0,0,0,0,128,205,1,0,0,0,0,0,148,205,1,0,0,0,0,0,164,205,1, - 0,0,0,0,0,176,205,1,0,0,0,0,0,186,205,1,0,0,0,0,0,200,205,1,0,0,0,0,0,214,205,1,0,0,0,0,0,234,205,1,0,0,0,0,0,4,206,1,0,0,0,0,0,18,206,1,0,0,0,0,0,28,206,1,0,0,0,0,0,40,206,1,0,0,0,0,0,58,206,1,0,0,0,0,0,76,206,1,0,0,0,0,0,94,206,1,0,0,0,0,0, - 116,206,1,0,0,0,0,0,136,206,1,0,0,0,0,0,158,206,1,0,0,0,0,0,180,206,1,0,0,0,0,0,206,206,1,0,0,0,0,0,232,206,1,0,0,0,0,0,254,206,1,0,0,0,0,0,12,207,1,0,0,0,0,0,28,207,1,0,0,0,0,0,50,207,1,0,0,0,0,0,72,207,1,0,0,0,0,0,92,207,1,0,0,0,0,0,104,207, - 1,0,0,0,0,0,122,207,1,0,0,0,0,0,140,207,1,0,0,0,0,0,158,207,1,0,0,0,0,0,174,207,1,0,0,0,0,0,192,207,1,0,0,0,0,0,208,207,1,0,0,0,0,0,234,207,1,0,0,0,0,0,246,207,1,0,0,0,0,0,2,208,1,0,0,0,0,0,16,208,1,0,0,0,0,0,28,208,1,0,0,0,0,0,68,208,1,0,0, - 0,0,0,98,208,1,0,0,0,0,0,120,208,1,0,0,0,0,0,144,208,1,0,0,0,0,0,162,208,1,0,0,0,0,0,178,208,1,0,0,0,0,0,202,208,1,0,0,0,0,0,220,208,1,0,0,0,0,0,238,208,1,0,0,0,0,0,254,208,1,0,0,0,0,0,20,209,1,0,0,0,0,0,42,209,1,0,0,0,0,0,64,209,1,0,0,0,0,0, - 90,209,1,0,0,0,0,0,108,209,1,0,0,0,0,0,134,209,1,0,0,0,0,0,160,209,1,0,0,0,0,0,180,209,1,0,0,0,0,0,194,209,1,0,0,0,0,0,214,209,1,0,0,0,0,0,230,209,1,0,0,0,0,0,246,209,1,0,0,0,0,0,18,210,1,0,0,0,0,0,38,210,1,0,0,0,0,0,56,210,1,0,0,0,0,0,72,210, - 1,0,0,0,0,0,100,210,1,0,0,0,0,0,122,210,1,0,0,0,0,0,138,210,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,99,113,117,105,114,101,83,82,87,76,111,99,107,69,120,99,108,117,115,105,118,101,0,148,0,67,108,111,115,101,72,97,110,100,108,101,0,218,0,67,114,101, - 97,116,101,70,105,108,101,87,0,35,1,68,101,108,101,116,101,67,114,105,116,105,99,97,108,83,101,99,116,105,111,110,0,68,1,69,110,99,111,100,101,80,111,105,110,116,101,114,0,72,1,69,110,116,101,114,67,114,105,116,105,99,97,108,83,101,99,116,105, - 111,110,0,0,119,1,69,120,105,116,80,114,111,99,101,115,115,0,142,1,70,105,110,100,67,108,111,115,101,0,148,1,70,105,110,100,70,105,114,115,116,70,105,108,101,69,120,87,0,0,165,1,70,105,110,100,78,101,120,116,70,105,108,101,87,0,179,1,70,108, - 115,65,108,108,111,99,0,0,180,1,70,108,115,70,114,101,101,0,181,1,70,108,115,71,101,116,86,97,108,117,101,0,182,1,70,108,115,83,101,116,86,97,108,117,101,0,184,1,70,108,117,115,104,70,105,108,101,66,117,102,102,101,114,115,0,0,195,1,70,114,101, - 101,69,110,118,105,114,111,110,109,101,110,116,83,116,114,105,110,103,115,87,0,196,1,70,114,101,101,76,105,98,114,97,114,121,0,203,1,71,101,116,65,67,80,0,0,218,1,71,101,116,67,80,73,110,102,111,0,239,1,71,101,116,67,111,109,109,97,110,100,76, - 105,110,101,65,0,240,1,71,101,116,67,111,109,109,97,110,100,76,105,110,101,87,0,21,2,71,101,116,67,111,110,115,111,108,101,77,111,100,101,0,0,25,2,71,101,116,67,111,110,115,111,108,101,79,117,116,112,117,116,67,80,0,0,49,2,71,101,116,67,117, - 114,114,101,110,116,80,114,111,99,101,115,115,0,50,2,71,101,116,67,117,114,114,101,110,116,80,114,111,99,101,115,115,73,100,0,54,2,71,101,116,67,117,114,114,101,110,116,84,104,114,101,97,100,73,100,0,0,81,2,71,101,116,69,110,118,105,114,111, - 110,109,101,110,116,83,116,114,105,110,103,115,87,0,0,83,2,71,101,116,69,110,118,105,114,111,110,109,101,110,116,86,97,114,105,97,98,108,101,87,0,95,2,71,101,116,70,105,108,101,65,116,116,114,105,98,117,116,101,115,87,0,0,104,2,71,101,116,70, - 105,108,101,84,121,112,101,0,123,2,71,101,116,76,97,115,116,69,114,114,111,114,0,0,143,2,71,101,116,77,111,100,117,108,101,70,105,108,101,78,97,109,101,87,0,0,146,2,71,101,116,77,111,100,117,108,101,72,97,110,100,108,101,69,120,87,0,0,147,2, - 71,101,116,77,111,100,117,108,101,72,97,110,100,108,101,87,0,0,180,2,71,101,116,79,69,77,67,80,0,0,203,2,71,101,116,80,114,111,99,65,100,100,114,101,115,115,0,0,210,2,71,101,116,80,114,111,99,101,115,115,72,101,97,112,0,0,239,2,71,101,116,83, - 116,97,114,116,117,112,73,110,102,111,87,0,241,2,71,101,116,83,116,100,72,97,110,100,108,101,0,0,246,2,71,101,116,83,116,114,105,110,103,84,121,112,101,87,0,0,2,3,71,101,116,83,121,115,116,101,109,73,110,102,111,0,8,3,71,101,116,83,121,115,116, - 101,109,84,105,109,101,65,115,70,105,108,101,84,105,109,101,0,104,3,72,101,97,112,65,108,108,111,99,0,108,3,72,101,97,112,70,114,101,101,0,0,111,3,72,101,97,112,82,101,65,108,108,111,99,0,113,3,72,101,97,112,83,105,122,101,0,0,130,3,73,110,105, - 116,105,97,108,105,122,101,67,114,105,116,105,99,97,108,83,101,99,116,105,111,110,65,110,100,83,112,105,110,67,111,117,110,116,0,131,3,73,110,105,116,105,97,108,105,122,101,67,114,105,116,105,99,97,108,83,101,99,116,105,111,110,69,120,0,134, - 3,73,110,105,116,105,97,108,105,122,101,83,76,105,115,116,72,101,97,100,0,138,3,73,110,116,101,114,108,111,99,107,101,100,70,108,117,115,104,83,76,105,115,116,0,170,3,73,115,86,97,108,105,100,67,111,100,101,80,97,103,101,0,208,3,76,67,77,97, - 112,83,116,114,105,110,103,87,0,0,220,3,76,101,97,118,101,67,114,105,116,105,99,97,108,83,101,99,116,105,111,110,0,0,225,3,76,111,97,100,76,105,98,114,97,114,121,69,120,65,0,0,226,3,76,111,97,100,76,105,98,114,97,114,121,69,120,87,0,0,227,3, - 76,111,97,100,76,105,98,114,97,114,121,87,0,0,13,4,77,117,108,116,105,66,121,116,101,84,111,87,105,100,101,67,104,97,114,0,52,4,79,117,116,112,117,116,68,101,98,117,103,83,116,114,105,110,103,65,0,0,53,4,79,117,116,112,117,116,68,101,98,117, - 103,83,116,114,105,110,103,87,0,0,107,4,81,117,101,114,121,80,101,114,102,111,114,109,97,110,99,101,67,111,117,110,116,101,114,0,130,4,82,97,105,115,101,69,120,99,101,112,116,105,111,110,0,0,211,4,82,101,108,101,97,115,101,83,82,87,76,111,99, - 107,69,120,99,108,117,115,105,118,101,0,247,4,82,116,108,76,111,111,107,117,112,70,117,110,99,116,105,111,110,69,110,116,114,121,0,0,249,4,82,116,108,80,99,84,111,70,105,108,101,72,101,97,100,101,114,0,252,4,82,116,108,85,110,119,105,110,100, - 69,120,0,78,5,83,101,116,70,105,108,101,80,111,105,110,116,101,114,69,120,0,0,93,5,83,101,116,76,97,115,116,69,114,114,111,114,0,0,120,5,83,101,116,83,116,100,72,97,110,100,108,101,0,0,174,5,83,108,101,101,112,67,111,110,100,105,116,105,111, - 110,86,97,114,105,97,98,108,101,83,82,87,0,188,5,84,101,114,109,105,110,97,116,101,80,114,111,99,101,115,115,0,0,253,5,86,105,114,116,117,97,108,80,114,111,116,101,99,116,0,0,255,5,86,105,114,116,117,97,108,81,117,101,114,121,0,0,16,6,87,97, - 107,101,65,108,108,67,111,110,100,105,116,105,111,110,86,97,114,105,97,98,108,101,0,0,47,6,87,105,100,101,67,104,97,114,84,111,77,117,108,116,105,66,121,116,101,0,66,6,87,114,105,116,101,67,111,110,115,111,108,101,87,0,67,6,87,114,105,116,101, - 70,105,108,101,0,75,69,82,78,69,76,51,50,46,100,108,108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,80,8,8,0,64,0,225,131,252,228,128,114,0,0,0,80,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,1,0,0,0,1,0,0,0,0,211,1,0,64,0,0,0,0,0,0,0,0,0,0,0,20,58,1,0,0,0,0,0,0,0,0,0,132,81,0,0,0,0,0,0,8,0,80,8,4,0,0,0,129,252,228,227,128,114,0,0,0,80,1,0,52,0,64,16,42,0,64,0,225,129,208,130,36,252,228,227,21,0,64,16,12,0,64,0,225,129, - 212,1,252,228,227,227,10,0,0,8,225,133,252,228,79,0,80,24,70,0,64,0,225,131,209,4,200,130,38,252,228,227,227,227,64,106,0,0,2,0,0,0,0,86,0,0,112,86,0,0,52,58,1,0,0,0,0,0,240,86,0,0,252,86,0,0,52,58,1,0,0,0,0,0,10,0,64,8,6,0,0,0,129,252,228,227, - 43,0,80,16,11,0,64,0,225,131,208,130,36,252,228,227,64,106,0,0,4,0,0,0,84,87,0,0,116,87,0,0,92,58,1,0,0,0,0,0,72,87,0,0,148,87,0,0,132,58,1,0,0,0,0,0,160,87,0,0,172,87,0,0,92,58,1,0,0,0,0,0,160,87,0,0,172,87,0,0,132,58,1,0,0,0,0,0,9,0,64,8,5, - 0,0,0,129,252,228,227,106,0,112,24,225,133,209,4,200,130,38,252,228,227,227,227,64,106,0,0,1,0,0,0,96,88,0,0,156,89,0,0,168,58,1,0,156,89,0,0,16,0,64,8,12,0,0,0,129,252,228,227,53,0,112,8,225,131,252,228,64,106,0,0,1,0,0,0,172,99,0,0,100,100, - 0,0,232,58,1,0,100,100,0,0,13,0,64,8,8,0,0,0,129,252,228,227,24,0,64,8,19,0,64,0,225,129,252,228,42,0,64,16,35,0,64,0,225,129,34,252,228,227,227,227,1,0,0,8,228,0,0,0,46,0,80,8,40,0,0,0,225,129,252,228,96,185,0,0,232,255,255,255,87,0,64,24,79, - 0,64,0,225,133,201,4,200,130,38,252,228,227,227,227,26,0,64,16,20,0,64,0,225,129,34,252,228,227,227,227,27,0,112,16,225,139,34,252,228,227,227,227,64,106,0,0,1,0,0,0,48,115,0,0,96,115,0,0,28,59,1,0,96,115,0,0,40,0,64,8,35,0,0,0,129,34,252,228, - 20,0,64,16,14,0,64,0,225,129,212,1,252,228,227,227,41,0,64,16,26,0,64,0,225,129,34,252,228,227,227,227,46,0,80,16,40,0,64,0,225,133,212,1,252,228,227,227,64,106,0,0,1,0,0,0,216,115,0,0,236,115,0,0,188,59,1,0,236,115,0,0,68,0,64,16,58,0,0,0,129, - 212,1,252,228,227,227,227,12,0,0,8,225,129,252,228,20,0,112,16,225,129,212,1,252,228,227,227,64,106,0,0,1,0,0,0,200,125,0,0,228,125,0,0,204,60,1,0,0,0,0,0,41,0,112,16,225,131,212,1,252,228,227,227,128,114,0,0,64,84,1,0,0,0,0,0,120,126,0,0,255, - 255,255,255,168,126,0,0,0,0,0,0,184,126,0,0,255,255,255,255,25,0,0,16,225,129,212,1,252,228,227,227,58,0,80,16,51,0,64,0,225,137,212,1,252,228,227,227,128,114,0,0,112,84,1,0,255,255,255,255,56,116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,196,127,0,0,255, - 255,255,255,76,128,0,0,0,0,0,0,67,0,80,16,61,0,64,0,225,133,34,252,228,227,227,227,64,106,0,0,1,0,0,0,168,128,0,0,28,129,0,0,32,61,1,0,124,129,0,0,19,0,64,8,14,0,0,0,129,252,228,227,17,0,112,16,225,131,34,252,228,227,227,227,64,106,0,0,1,0,0, - 0,172,129,0,0,180,129,0,0,244,60,1,0,0,0,0,0,11,0,64,8,7,0,0,0,129,252,228,227,18,0,112,8,225,135,252,228,128,114,0,0,160,84,1,0,0,0,0,0,172,134,0,0,0,0,0,0,19,0,112,16,225,131,34,252,228,227,227,227,64,106,0,0,1,0,0,0,44,136,0,0,56,136,0,0, - 244,60,1,0,0,0,0,0,42,0,112,16,225,131,34,252,228,227,227,227,128,114,0,0,208,84,1,0,82,0,64,24,69,0,64,0,225,129,209,4,200,130,38,252,228,227,227,227,135,0,64,16,21,0,64,0,225,129,200,130,36,252,228,227,37,0,64,16,31,0,64,0,225,131,34,252,228, - 227,227,227,58,0,64,16,51,0,64,0,225,131,208,130,36,252,228,227,5,0,32,8,1,228,227,227,14,0,16,8,225,129,252,228,0,255,0,0,1,0,0,0,32,157,0,0,40,157,0,0,1,0,0,0,40,157,0,0,49,0,0,8,228,0,0,0,71,0,0,8,228,0,0,0,27,0,112,16,225,129,34,252,228, - 227,227,227,64,106,0,0,1,0,0,0,236,158,0,0,48,159,0,0,108,61,1,0,48,159,0,0,13,0,64,8,9,0,0,0,129,252,228,227,7,0,64,8,5,0,128,0,2,228,2,228,1,0,0,8,228,0,0,0,21,0,64,48,14,0,64,3,226,10,74,202,8,201,134,201,4,200,130,44,228,74,202,8,201,134, - 201,4,200,130,44,228,21,0,64,48,14,0,64,3,226,10,74,202,8,201,134,201,4,200,130,44,228,74,202,8,201,134,201,4,200,130,44,228,15,0,0,8,225,129,252,228,10,0,64,8,5,0,64,0,225,129,252,228,118,0,80,32,107,0,64,0,225,137,210,7,209,134,201,4,200,130, - 40,252,228,227,227,227,64,106,0,0,3,0,0,0,252,163,0,0,176,164,0,0,144,62,1,0,176,164,0,0,196,163,0,0,200,164,0,0,180,62,1,0,0,0,0,0,36,165,0,0,40,165,0,0,180,62,1,0,0,0,0,0,15,0,64,8,11,0,0,0,129,252,228,227,122,0,80,32,112,0,64,0,225,143,210, - 7,209,134,201,4,200,130,40,252,228,227,227,227,64,106,0,0,2,0,0,0,152,166,0,0,184,166,0,0,160,61,1,0,184,166,0,0,152,166,0,0,40,167,0,0,208,61,1,0,0,0,0,0,12,0,64,8,8,0,0,0,129,252,228,227,48,0,64,16,39,0,0,0,129,212,1,252,228,227,227,227,63, - 0,64,32,53,0,64,0,225,131,210,8,201,134,201,4,200,130,42,252,228,227,227,227,124,0,80,24,111,0,64,0,225,131,201,4,200,130,38,252,228,227,227,227,64,106,0,0,2,0,0,0,232,171,0,0,8,173,0,0,1,0,0,0,64,173,0,0,44,173,0,0,64,173,0,0,1,0,0,0,64,173, - 0,0,58,0,80,16,51,0,64,0,225,129,208,130,36,252,228,227,64,106,0,0,1,0,0,0,128,173,0,0,20,174,0,0,1,0,0,0,40,174,0,0,167,0,64,32,149,0,64,0,225,129,210,8,201,134,201,4,200,130,42,252,228,227,227,227,79,1,80,32,48,1,0,0,225,210,10,201,136,201, - 6,200,132,200,2,139,252,228,227,227,96,185,0,0,152,255,255,255,150,0,64,32,137,0,0,0,225,145,210,8,201,134,201,4,200,130,42,252,228,227,227,227,6,0,64,8,5,0,128,0,1,228,228,0,11,0,64,16,6,0,64,0,228,1,236,228,228,0,0,0,5,0,64,16,3,0,0,1,226, - 2,66,228,66,228,0,0,18,0,0,8,228,0,0,0,57,0,0,8,228,0,0,0,19,0,0,8,228,0,0,0,72,0,0,8,228,0,0,0,33,0,64,8,13,0,64,0,225,129,252,228,127,0,64,32,91,0,64,0,225,133,210,8,201,134,201,4,200,130,42,252,228,227,227,227,62,0,64,16,55,0,64,0,225,129, - 208,130,36,252,228,227,48,0,64,16,42,0,64,0,225,129,34,252,228,227,227,227,51,0,64,16,16,0,64,0,225,129,208,130,36,252,228,227,19,0,112,16,225,131,34,252,228,227,227,227,64,106,0,0,1,0,0,0,172,201,0,0,188,201,0,0,244,60,1,0,0,0,0,0,21,0,112, - 16,225,131,34,252,228,227,227,227,64,106,0,0,1,0,0,0,252,201,0,0,20,202,0,0,244,60,1,0,0,0,0,0,28,0,112,16,225,131,34,252,228,227,227,227,64,106,0,0,1,0,0,0,84,202,0,0,136,202,0,0,244,60,1,0,0,0,0,0,33,0,112,16,225,131,34,252,228,227,227,227, - 64,106,0,0,1,0,0,0,196,202,0,0,12,203,0,0,244,60,1,0,0,0,0,0,20,0,112,16,225,129,212,1,252,228,227,227,64,106,0,0,1,0,0,0,76,203,0,0,100,203,0,0,240,62,1,0,0,0,0,0,166,0,48,16,225,200,132,200,2,133,252,228,96,185,0,0,200,255,255,255,47,0,80, - 16,40,0,64,0,225,129,208,130,36,252,228,227,0,255,0,0,1,0,0,0,64,211,0,0,136,211,0,0,24,63,1,0,0,0,0,0,100,0,96,24,225,64,192,39,208,130,36,252,228,227,227,227,133,0,48,16,225,208,2,131,252,228,227,227,96,185,0,0,216,255,255,255,81,0,112,16, - 225,131,200,130,36,252,228,227,64,106,0,0,1,0,0,0,216,215,0,0,216,216,0,0,244,60,1,0,0,0,0,0,15,0,0,8,228,0,0,0,2,0,0,8,228,0,0,0,13,0,0,8,228,0,0,0,14,0,0,8,228,0,0,0,18,0,0,8,228,0,0,0,17,0,16,8,228,0,0,0,240,23,0,0,0,0,0,0,59,0,64,24,29,0, - 64,0,225,129,201,4,200,130,38,252,228,227,227,227,155,0,80,32,28,0,64,0,225,133,210,7,209,134,201,4,200,130,40,252,228,227,227,227,64,106,0,0,2,0,0,0,240,221,0,0,160,222,0,0,64,63,1,0,0,0,0,0,44,223,0,0,68,223,0,0,64,63,1,0,0,0,0,0,22,0,112, - 16,225,131,34,252,228,227,227,227,64,106,0,0,1,0,0,0,208,223,0,0,236,223,0,0,244,60,1,0,0,0,0,0,51,0,112,16,225,131,34,252,228,227,227,227,64,106,0,0,1,0,0,0,44,226,0,0,188,226,0,0,112,63,1,0,0,0,0,0,61,0,112,16,225,139,200,130,36,252,228,227, - 64,106,0,0,1,0,0,0,0,227,0,0,176,227,0,0,156,63,1,0,0,0,0,0,155,0,64,32,140,0,64,0,225,135,210,8,201,134,201,4,200,130,42,252,228,227,227,227,109,0,96,24,225,129,201,68,200,130,38,252,228,227,227,227,115,0,96,24,225,129,201,68,200,130,38,252, - 228,227,227,227,103,0,64,24,22,0,64,0,225,129,209,134,201,4,200,130,40,252,228,227,200,0,80,24,190,0,0,0,225,209,136,201,6,200,132,200,2,137,252,228,96,185,0,0,168,255,255,255,69,0,48,16,225,200,2,131,252,228,227,227,96,185,0,0,216,255,255,255, - 76,0,96,16,225,129,208,194,36,252,228,227,35,0,112,16,225,133,200,130,36,252,228,227,64,106,0,0,1,0,0,0,108,253,0,0,184,253,0,0,200,63,1,0,0,0,0,0,27,0,64,16,16,0,64,0,225,129,34,252,228,227,227,227,41,0,64,56,33,0,64,3,202,12,201,138,201,8, - 200,134,200,4,66,7,228,202,12,201,138,201,8,200,134,200,4,66,7,228,0,0,6,0,64,8,5,0,64,0,228,228,0,0,11,0,0,8,225,131,228,0,45,0,64,24,28,0,64,0,225,129,201,4,200,130,38,252,228,227,227,227,30,0,80,16,24,0,64,0,225,129,34,252,228,227,227,227, - 64,106,0,0,1,0,0,0,76,4,1,0,96,4,1,0,244,63,1,0,0,0,0,0,48,0,80,24,14,0,64,0,225,131,201,4,200,130,38,252,228,227,227,227,64,106,0,0,2,0,0,0,52,8,1,0,112,8,1,0,240,62,1,0,0,0,0,0,128,8,1,0,152,8,1,0,240,62,1,0,0,0,0,0,111,0,48,32,225,210,10, - 201,136,201,6,200,132,200,2,139,252,228,227,227,96,185,0,0,152,255,255,255,202,0,48,32,225,210,10,201,136,201,6,200,132,200,2,139,252,228,227,227,96,185,0,0,152,255,255,255,99,0,0,8,228,0,0,0,47,0,112,16,225,131,34,252,228,227,227,227,64,106, - 0,0,1,0,0,0,132,15,1,0,0,16,1,0,28,64,1,0,0,0,0,0,224,0,48,32,225,210,10,201,136,201,6,200,132,200,2,139,252,228,227,227,96,185,0,0,152,255,255,255,88,0,80,32,22,0,64,0,225,131,210,7,209,134,201,4,200,130,40,252,228,227,227,227,64,106,0,0,1, - 0,0,0,236,20,1,0,48,21,1,0,72,64,1,0,0,0,0,0,53,1,48,32,225,210,10,201,136,201,6,200,132,200,2,139,252,228,227,227,88,49,1,0,144,173,1,0,155,255,255,255,0,0,0,0,200,21,1,0,255,255,255,255,87,0,48,32,225,210,10,201,136,201,6,200,132,200,2,139, - 252,228,227,227,96,185,0,0,152,255,255,255,97,0,48,32,225,210,10,201,136,201,6,200,132,200,2,139,252,228,227,227,96,185,0,0,152,255,255,255,54,0,112,16,225,131,200,130,36,252,228,227,64,106,0,0,1,0,0,0,132,30,1,0,24,31,1,0,112,64,1,0,0,0,0,0, - 3,1,80,32,20,0,0,0,225,210,10,201,136,201,6,200,132,200,2,139,252,228,227,227,96,185,0,0,152,255,255,255,62,0,64,8,20,0,64,0,225,129,252,228,45,0,80,8,39,0,0,0,225,129,252,228,96,185,0,0,232,255,255,255,7,1,0,8,228,0,0,0,12,0,0,8,228,0,0,0,110, - 0,64,32,73,0,64,0,225,131,210,8,201,134,201,4,200,130,42,252,228,227,227,227,40,0,80,16,20,0,64,0,225,131,34,252,228,227,227,227,64,106,0,0,1,0,0,0,176,51,1,0,192,51,1,0,152,64,1,0,0,0,0,0,118,0,80,8,111,0,0,0,225,129,252,228,96,185,0,0,232, - 255,255,255,38,0,112,16,225,131,34,252,228,227,227,227,64,106,0,0,1,0,0,0,68,57,1,0,156,57,1,0,28,64,1,0,0,0,0,0,46,0,64,24,34,0,128,1,226,1,65,212,3,228,2,65,212,3,228,227,24,0,128,8,12,0,64,0,22,0,64,0,225,129,228,227,45,0,160,25,226,1,65, - 212,3,228,2,65,212,3,228,227,57,0,128,32,29,0,192,1,52,0,192,1,226,3,67,208,130,38,228,3,67,208,130,38,228,227,227,227,54,0,160,16,226,2,66,36,228,227,227,227,64,0,160,16,226,5,69,209,4,230,40,228,120,0,224,33,226,3,67,208,130,38,228,2,67,208, - 130,38,228,227,227,227,106,0,64,32,61,0,0,2,226,8,72,230,230,230,42,228,4,72,230,230,230,42,228,227,55,0,128,16,19,0,128,0,22,0,128,0,226,1,65,212,3,228,227,227,52,0,64,24,33,0,64,1,226,2,66,36,228,2,66,36,228,227,227,227,85,0,64,32,55,0,192, - 1,226,3,67,208,130,38,228,5,67,208,130,38,228,227,227,227,119,1,64,40,246,0,64,2,226,10,74,230,230,230,230,44,228,8,74,230,230,230,230,44,228,227,227,227,76,0,96,25,226,2,66,36,228,2,66,36,228,227,227,227,130,0,64,40,110,0,64,2,226,7,71,210, - 70,230,230,42,228,13,71,210,70,230,230,42,228,227,227,227,156,0,64,32,42,0,192,1,226,6,70,230,230,40,228,10,70,230,230,40,228,227,227,227,60,0,64,32,52,0,192,1,226,3,67,208,130,38,228,8,67,208,130,38,228,227,227,227,54,0,64,32,43,0,192,1,226, - 3,67,208,130,38,228,3,67,208,130,38,228,227,227,227,50,0,160,25,226,4,68,230,38,228,1,68,230,38,228,227,124,0,64,40,39,0,64,2,226,7,71,210,70,230,230,42,228,192,35,71,210,70,230,230,42,228,227,227,36,0,128,16,16,0,128,0,33,0,128,0,226,2,66,36, - 228,227,227,227,43,0,64,16,38,0,128,0,226,1,65,212,3,228,227,227,73,0,64,24,44,0,64,1,226,2,66,36,228,4,66,36,228,227,227,227,27,0,160,16,226,2,66,36,228,227,227,227,143,0,64,24,78,0,128,1,226,4,68,230,38,228,1,68,230,38,228,227,108,0,96,25, - 226,2,66,36,228,5,66,36,228,227,227,227,135,0,128,40,51,0,64,2,127,0,64,2,226,10,74,230,230,230,230,44,228,1,74,230,230,230,230,44,228,227,227,227,51,0,160,16,226,6,70,230,230,40,228,227,150,0,64,40,117,0,128,2,226,9,73,210,8,230,230,230,44, - 228,6,73,210,8,230,230,230,44,228,227,93,0,128,32,36,0,0,2,86,0,0,2,226,8,72,230,230,230,42,228,1,72,230,230,230,42,228,227,50,0,160,42,226,6,70,210,69,209,4,230,40,228,192,34,70,210,69,209,4,230,40,228,15,0,160,16,226,1,65,212,3,228,227,227, - 11,0,160,16,226,1,65,212,3,228,227,227,43,0,64,16,35,0,128,0,226,4,68,230,38,228,227,227,16,0,64,16,11,0,128,0,226,2,66,36,228,227,227,227,34,0,160,16,226,3,67,208,130,38,228,227,35,0,64,16,25,0,128,0,226,4,68,230,38,228,227,227,29,0,160,16, - 226,3,67,208,130,38,228,227,35,0,128,16,18,0,128,0,31,0,128,0,226,4,68,230,38,228,227,227,50,0,160,24,226,9,73,210,8,230,230,230,44,228,227,227,127,0,64,40,51,0,64,2,226,7,71,209,134,230,230,42,228,3,71,209,134,230,230,42,228,227,227,227,0,0, - 0,0,80,84,0,0,0,0,0,0,176,226,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,200,226,1,0,240,226,1,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,248,249,1,0,0,0,0,0,255,255,255,255,0,0,0,0,24,0,0,0,96,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,250,1,0,0,0, - 0,0,255,255,255,255,0,0,0,0,24,0,0,0,112,83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,84,0,0,0,0,0,0,56,227,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,88,227,1,0,200,226,1,0,240,226,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,250,1,0,0,0,0, - 0,255,255,255,255,0,0,0,0,24,0,0,0,216,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,84,0,0,0,0,0,0,160,227,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,184,227,1,0,240,226,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,120,250,1,0,0,0,0,0,255,255,255,255,0, - 0,0,0,24,0,0,0,8,168,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,255,255,255,255,205,93,32,210,102,212,255,255,50,162,223,45,153,43,0,0,2,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,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,0,0,0,0,0,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,0,0,0,0,0,0,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,0,0,0,0,0,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,0,0,0,0,0,0,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88, - 89,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,4,8,0,0,0,0,0,0,0,0,0,0,0,0,164,3,0,0,96,130,121,130,33,0,0,0,0,0,0,0,166,223,0,0,0,0,0,0,161,165,0,0,0,0,0,0,129,159,224,252,0,0,0,0,64,126,128,252,0,0,0,0,168,3,0,0,193,163,218,163,32,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,129,254,0,0,0,0,0,0,64,254,0,0,0,0,0,0,181,3,0,0,193,163,218,163,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,129,254,0,0,0,0,0,0,65,254,0,0,0,0,0,0,182,3,0,0,207,162,228,162,26,0,229,162,232,162,91,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,129,254,0,0,0,0,0,0,64,126,161,254,0,0,0,0,81,5,0,0,81,218,94,218,32,0,95,218,106,218,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,129,211,216,222,224,249,0,0,49,126,129,254,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,115,1,128,1, - 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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,232,246,1,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,232,246,1,128,1,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,232,246,1,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,232,246,1,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,232,246,1,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,248,1,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118,1,128,1,0,0,0,128,119,1,128,1,0,0,0,144,106,1,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,128,245,1,128,1,0,0,0,48,240,1,128,1,0,0,0,67,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,32,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,32,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,8,0,0,0,130,120,1,128,1,0,0,0,117,152,0,0,254,255,255,255,168,248,1,128,1,0,0,0,68,7,2,128,1,0,0,0,68,7,2,128,1,0,0,0,68, - 7,2,128,1,0,0,0,68,7,2,128,1,0,0,0,68,7,2,128,1,0,0,0,68,7,2,128,1,0,0,0,68,7,2,128,1,0,0,0,68,7,2,128,1,0,0,0,68,7,2,128,1,0,0,0,127,127,127,127,127,127,127,127,172,248,1,128,1,0,0,0,72,7,2,128,1,0,0,0,72,7,2,128,1,0,0,0,72,7,2,128,1,0,0,0, - 72,7,2,128,1,0,0,0,72,7,2,128,1,0,0,0,72,7,2,128,1,0,0,0,72,7,2,128,1,0,0,0,46,0,0,0,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1, - 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,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,254,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,212,190,1,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,192,80,1,128,1,0,0,0,0,0,0,0,0,0,0,0,46,63,65,86,98,97,100,95,97,108,108,111,99,64,115,116,100,64,64,0,0,0,0,0,192,80,1,128,1,0,0,0,0,0,0,0,0,0,0,0,46,63,65,86,101,120,99,101,112,116,105,111,110, - 64,115,116,100,64,64,0,0,0,0,0,192,80,1,128,1,0,0,0,0,0,0,0,0,0,0,0,46,63,65,86,98,97,100,95,97,114,114,97,121,95,110,101,119,95,108,101,110,103,116,104,64,115,116,100,64,64,0,0,192,80,1,128,1,0,0,0,0,0,0,0,0,0,0,0,46,63,65,86,98,97,100,95,101, - 120,99,101,112,116,105,111,110,64,115,116,100,64,64,0,192,80,1,128,1,0,0,0,0,0,0,0,0,0,0,0,46,63,65,86,116,121,112,101,95,105,110,102,111,64,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,64,1,128,1,0,0,0,204,64,1,128,1,0,0,0,216,64,1,128,1,0,0,0, - 228,64,1,128,1,0,0,0,240,64,1,128,1,0,0,0,252,64,1,128,1,0,0,0,8,65,1,128,1,0,0,0,20,65,1,128,1,0,0,0,0,0,0,0,0,0,0,0,140,65,1,128,1,0,0,0,152,65,1,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,132,212,1,0,64,16,0,0,20,215,1,0,64,17,0,0,28,215,1,0,96,18,0,0,84,215,1,0,124,18,0,0,96,215,1,0,128,18,0,0,104,215,1,0,212, - 18,0,0,136,215,1,0,48,19,0,0,64,217,1,0,80,19,0,0,76,217,1,0,128,19,0,0,92,217,1,0,160,19,0,0,108,217,1,0,0,20,0,0,116,217,1,0,0,21,0,0,124,217,1,0,96,21,0,0,132,217,1,0,128,22,0,0,32,219,1,0,144,22,0,0,64,219,1,0,224,22,0,0,48,219,1,0,32,23, - 0,0,40,219,1,0,96,23,0,0,32,219,1,0,112,23,0,0,24,219,1,0,176,23,0,0,24,219,1,0,240,23,0,0,56,219,1,0,64,24,0,0,40,219,1,0,128,24,0,0,204,220,1,0,48,25,0,0,240,220,1,0,72,25,0,0,252,220,1,0,128,25,0,0,180,221,1,0,32,27,0,0,244,222,1,0,80,31, - 0,0,252,222,1,0,128,31,0,0,124,223,1,0,56,32,0,0,144,223,1,0,152,32,0,0,160,223,1,0,80,33,0,0,176,223,1,0,52,34,0,0,204,223,1,0,12,35,0,0,216,223,1,0,12,36,0,0,228,223,1,0,236,37,0,0,248,223,1,0,148,39,0,0,16,224,1,0,112,40,0,0,36,224,1,0,64, - 41,0,0,56,224,1,0,148,42,0,0,80,224,1,0,112,48,0,0,108,224,1,0,160,49,0,0,124,224,1,0,168,51,0,0,152,224,1,0,48,54,0,0,176,224,1,0,32,55,0,0,200,224,1,0,248,55,0,0,224,224,1,0,212,56,0,0,240,224,1,0,196,58,0,0,12,225,1,0,176,59,0,0,32,225,1, - 0,96,60,0,0,48,225,1,0,144,61,0,0,68,225,1,0,8,62,0,0,169,0,224,0,176,62,0,0,80,225,1,0,236,64,0,0,100,225,1,0,156,66,0,0,116,225,1,0,184,68,0,0,148,225,1,0,132,69,0,0,160,225,1,0,220,71,0,0,188,225,1,0,80,73,0,0,216,225,1,0,36,74,0,0,240,225, - 1,0,96,74,0,0,252,225,1,0,140,74,0,0,8,226,1,0,56,75,0,0,24,226,1,0,120,75,0,0,40,226,1,0,60,76,0,0,24,226,1,0,124,76,0,0,52,226,1,0,84,77,0,0,77,0,224,0,168,77,0,0,68,226,1,0,28,78,0,0,80,226,1,0,168,78,0,0,100,226,1,0,112,79,0,0,116,226,1, - 0,112,81,0,0,200,210,1,0,184,81,0,0,52,211,1,0,136,82,0,0,141,0,66,1,24,83,0,0,68,211,1,0,112,83,0,0,77,0,65,1,224,83,0,0,81,0,66,1,96,84,0,0,89,0,65,1,216,84,0,0,89,0,65,1,48,85,0,0,84,211,1,0,88,85,0,0,84,211,1,0,128,85,0,0,65,0,65,1,192,85, - 0,0,92,211,1,0,0,87,0,0,164,211,1,0,176,87,0,0,105,0,192,0,24,88,0,0,8,212,1,0,192,89,0,0,81,0,195,1,16,90,0,0,217,0,66,1,232,90,0,0,141,0,192,0,16,92,0,0,205,0,66,4,224,92,0,0,173,0,68,2,144,93,0,0,145,0,192,0,32,94,0,0,141,0,64,1,176,94,0, - 0,109,3,201,6,48,98,0,0,213,0,66,2,64,99,0,0,61,0,192,0,160,99,0,0,60,212,1,0,120,100,0,0,104,212,1,0,216,100,0,0,65,0,65,1,24,101,0,0,101,0,192,0,128,101,0,0,77,0,65,1,208,101,0,0,116,212,1,0,120,102,0,0,133,0,70,2,0,103,0,0,45,0,192,0,48,103, - 0,0,69,0,192,0,120,103,0,0,61,0,192,0,184,103,0,0,37,0,192,0,224,103,0,0,69,0,192,0,40,104,0,0,37,0,192,0,104,104,0,0,101,0,66,1,208,104,0,0,101,0,66,1,112,105,0,0,185,0,67,3,64,106,0,0,113,2,201,3,184,108,0,0,129,0,69,2,56,109,0,0,69,0,65,1, - 128,109,0,0,117,0,67,2,248,109,0,0,13,1,72,3,8,111,0,0,140,212,1,0,192,111,0,0,160,212,1,0,32,113,0,0,33,0,192,0,64,113,0,0,45,0,65,1,112,113,0,0,33,0,192,0,144,113,0,0,45,0,65,1,192,113,0,0,89,0,65,1,24,114,0,0,180,212,1,0,128,114,0,0,133,0, - 68,2,8,115,0,0,196,212,1,0,128,115,0,0,20,213,1,0,72,116,0,0,244,212,1,0,192,116,0,0,4,213,1,0,104,117,0,0,161,0,196,1,8,118,0,0,61,0,65,1,72,118,0,0,65,0,65,1,168,118,0,0,69,0,192,0,240,118,0,0,45,0,192,0,32,119,0,0,33,0,192,0,64,119,0,0,37, - 0,192,0,104,119,0,0,37,0,192,0,144,119,0,0,76,213,1,0,160,122,0,0,53,0,192,0,240,122,0,0,33,0,192,0,16,123,0,0,85,0,65,1,112,123,0,0,37,0,192,0,160,123,0,0,81,0,66,1,240,123,0,0,101,0,65,1,88,124,0,0,45,0,192,0,136,124,0,0,77,0,192,0,216,124, - 0,0,37,0,192,0,0,125,0,0,37,0,192,0,40,125,0,0,33,0,192,0,72,125,0,0,89,0,65,1,176,125,0,0,84,213,1,0,64,126,0,0,120,213,1,0,232,126,0,0,61,0,192,0,40,127,0,0,168,213,1,0,144,127,0,0,180,213,1,0,120,128,0,0,240,213,1,0,136,129,0,0,36,214,1,0, - 208,129,0,0,161,1,196,2,112,131,0,0,121,0,65,1,232,131,0,0,85,2,200,2,120,134,0,0,84,214,1,0,192,134,0,0,73,1,199,2,8,136,0,0,112,214,1,0,104,136,0,0,148,214,1,0,16,137,0,0,141,0,66,1,160,137,0,0,93,0,66,1,0,138,0,0,93,0,66,1,96,138,0,0,168, - 214,1,0,168,139,0,0,81,0,66,1,248,139,0,0,89,0,66,1,120,140,0,0,188,214,1,0,168,142,0,0,149,0,65,1,64,143,0,0,205,0,192,0,16,144,0,0,85,0,192,0,104,144,0,0,37,1,196,2,208,145,0,0,165,0,65,1,120,146,0,0,201,0,194,3,64,147,0,0,113,0,66,1,176,147, - 0,0,204,214,1,0,72,148,0,0,220,214,1,0,48,149,0,0,129,0,194,1,176,149,0,0,233,6,201,3,208,156,0,0,236,214,1,0,248,156,0,0,244,214,1,0,104,157,0,0,205,0,194,3,216,158,0,0,36,215,1,0,72,159,0,0,168,215,1,0,136,159,0,0,121,0,65,1,0,160,0,0,73,0, - 65,1,72,160,0,0,176,215,1,0,112,160,0,0,5,1,196,1,120,161,0,0,121,0,66,1,200,162,0,0,81,0,194,1,24,163,0,0,65,0,193,1,88,163,0,0,188,215,1,0,48,165,0,0,173,0,68,2,224,165,0,0,24,216,1,0,8,168,0,0,89,0,65,1,96,168,0,0,193,0,66,1,40,169,0,0,116, - 216,1,0,48,170,0,0,41,1,196,1,88,171,0,0,140,216,1,0,72,173,0,0,200,216,1,0,48,174,0,0,240,216,1,0,208,176,0,0,8,217,1,0,16,182,0,0,217,0,201,3,232,182,0,0,40,217,1,0,96,185,0,0,61,0,192,0,224,185,0,0,140,217,1,0,104,186,0,0,137,0,69,2,240,186, - 0,0,113,0,69,2,160,187,0,0,109,0,195,1,16,188,0,0,85,0,192,0,168,188,0,0,141,0,195,1,56,189,0,0,241,0,200,2,40,190,0,0,113,0,66,1,152,190,0,0,109,0,65,1,16,191,0,0,152,217,1,0,16,193,0,0,129,0,196,1,144,193,0,0,117,0,69,2,96,194,0,0,57,0,192, - 0,176,194,0,0,85,0,192,0,16,195,0,0,65,0,65,1,80,195,0,0,176,217,1,0,72,196,0,0,192,217,1,0,8,197,0,0,237,0,195,1,248,197,0,0,89,0,66,1,80,198,0,0,208,217,1,0,32,199,0,0,53,0,65,1,88,199,0,0,117,0,66,1,208,199,0,0,197,0,192,2,152,200,0,0,237, - 0,64,2,136,201,0,0,224,217,1,0,216,201,0,0,4,218,1,0,48,202,0,0,40,218,1,0,160,202,0,0,76,218,1,0,48,203,0,0,112,218,1,0,128,203,0,0,77,0,66,1,208,203,0,0,5,1,71,6,216,204,0,0,81,1,73,3,48,206,0,0,77,0,192,0,128,206,0,0,41,0,192,0,176,206,0, - 0,121,0,66,1,40,207,0,0,148,218,1,0,192,209,0,0,177,0,65,2,112,210,0,0,133,0,65,1,248,210,0,0,168,218,1,0,184,211,0,0,208,218,1,0,152,213,0,0,224,218,1,0,176,215,0,0,244,218,1,0,248,216,0,0,105,0,65,1,96,217,0,0,197,0,195,1,40,218,0,0,97,0,66, - 1,192,218,0,0,80,219,1,0,176,219,0,0,109,0,66,1,32,220,0,0,101,0,192,2,160,220,0,0,53,0,64,1,216,220,0,0,100,219,1,0,176,223,0,0,164,219,1,0,40,224,0,0,189,0,65,3,232,224,0,0,181,0,196,1,160,225,0,0,101,0,64,2,8,226,0,0,200,219,1,0,216,226,0, - 0,236,219,1,0,0,228,0,0,37,1,200,2,48,229,0,0,125,0,196,1,224,229,0,0,61,0,64,1,32,230,0,0,49,0,192,0,80,230,0,0,49,0,192,0,128,230,0,0,105,0,65,1,72,231,0,0,61,0,66,1,136,231,0,0,185,0,195,1,80,232,0,0,201,0,194,2,24,233,0,0,16,220,1,0,136, - 235,0,0,40,220,1,0,64,237,0,0,56,220,1,0,16,239,0,0,72,220,1,0,176,240,0,0,92,220,1,0,240,243,0,0,120,220,1,0,8,245,0,0,140,220,1,0,80,246,0,0,149,0,195,2,232,246,0,0,169,0,196,1,88,249,0,0,65,1,196,1,152,250,0,0,9,1,64,2,160,251,0,0,85,0,65, - 1,248,251,0,0,85,0,65,1,80,252,0,0,89,0,65,1,168,252,0,0,89,0,65,1,16,253,0,0,53,0,64,1,72,253,0,0,152,220,1,0,216,253,0,0,129,0,193,1,88,254,0,0,169,0,195,1,0,255,0,0,188,220,1,0,16,0,1,0,4,221,1,0,200,0,1,0,205,0,196,1,152,1,1,0,209,0,196, - 1,104,2,1,0,89,1,69,2,192,3,1,0,81,0,65,1,16,4,1,0,24,221,1,0,136,4,1,0,129,0,66,1,8,5,1,0,153,0,192,0,160,5,1,0,241,0,196,1,144,6,1,0,217,0,199,2,104,7,1,0,109,0,196,1,216,7,1,0,64,221,1,0,248,8,1,0,124,221,1,0,184,10,1,0,173,0,199,3,104,11, - 1,0,152,221,1,0,144,14,1,0,41,0,192,0,184,14,1,0,169,0,192,1,96,15,1,0,188,221,1,0,32,16,1,0,61,0,192,0,96,16,1,0,224,221,1,0,224,19,1,0,252,221,1,0,64,21,1,0,44,222,1,0,24,26,1,0,88,222,1,0,120,27,1,0,88,222,1,0,216,28,1,0,116,222,1,0,96,30, - 1,0,144,222,1,0,56,31,1,0,97,0,65,1,152,31,1,0,133,0,192,0,48,32,1,0,180,222,1,0,64,36,1,0,212,222,1,0,56,37,1,0,224,222,1,0,0,38,1,0,185,0,66,2,184,38,1,0,85,0,192,0,16,39,1,0,205,0,196,1,224,39,1,0,153,0,70,2,120,40,1,0,53,1,66,1,176,41,1, - 0,149,0,66,1,72,42,1,0,129,1,195,1,200,43,1,0,25,0,128,0,224,43,1,0,33,0,192,0,0,44,1,0,25,0,128,0,40,44,1,0,109,1,196,1,48,46,1,0,213,0,68,2,8,47,1,0,81,0,193,1,88,47,1,0,4,223,1,0,16,49,1,0,69,0,64,1,88,49,1,0,145,0,69,2,232,49,1,0,117,0,65, - 3,96,50,1,0,205,0,195,1,48,51,1,0,28,223,1,0,208,51,1,0,68,223,1,0,168,53,1,0,109,0,65,1,24,54,1,0,253,0,69,2,72,55,1,0,253,0,196,1,72,56,1,0,217,0,192,1,32,57,1,0,88,223,1,0,20,58,1,0,32,211,1,0,52,58,1,0,152,211,1,0,92,58,1,0,152,211,1,0,132, - 58,1,0,252,211,1,0,168,58,1,0,48,212,1,0,232,58,1,0,92,212,1,0,28,59,1,0,232,212,1,0,188,59,1,0,60,213,1,0,204,60,1,0,152,211,1,0,244,60,1,0,72,214,1,0,32,61,1,0,24,214,1,0,108,61,1,0,72,215,1,0,160,61,1,0,88,216,1,0,208,61,1,0,100,216,1,0,144, - 62,1,0,252,211,1,0,180,62,1,0,12,216,1,0,240,62,1,0,152,211,1,0,24,63,1,0,152,211,1,0,64,63,1,0,88,216,1,0,112,63,1,0,72,214,1,0,156,63,1,0,72,214,1,0,200,63,1,0,72,214,1,0,244,63,1,0,152,211,1,0,28,64,1,0,72,214,1,0,72,64,1,0,152,211,1,0,112, - 64,1,0,152,211,1,0,152,64,1,0,152,211,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,16,0,0,0,24,0, - 0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,48,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,9,4,0,0,72,0,0,0,96,48,2,0,40,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,5,52,0,0,0,86,0,83,0,95,0,86,0,69,0,82,0,83,0,73,0,79,0,78,0,95,0,73,0,78,0,70,0, - 79,0,0,0,0,0,189,4,239,254,0,0,1,0,0,0,1,0,46,0,61,9,0,0,1,0,46,0,61,9,63,0,0,0,0,0,0,0,4,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,136,4,0,0,1,0,83,0,116,0,114,0,105,0,110,0,103,0,70,0,105,0,108,0,101,0,73,0,110,0,102,0,111,0,0,0,100,4,0,0,1,0, - 48,0,52,0,48,0,57,0,48,0,52,0,98,0,48,0,0,0,76,0,22,0,1,0,67,0,111,0,109,0,112,0,97,0,110,0,121,0,78,0,97,0,109,0,101,0,0,0,0,0,77,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,32,0,67,0,111,0,114,0,112,0,111,0,114,0,97,0,116,0,105,0,111, - 0,110,0,0,0,134,0,47,0,1,0,70,0,105,0,108,0,101,0,68,0,101,0,115,0,99,0,114,0,105,0,112,0,116,0,105,0,111,0,110,0,0,0,0,0,77,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,32,0,69,0,100,0,103,0,101,0,32,0,69,0,109,0,98,0,101,0,100,0,100,0, - 101,0,100,0,32,0,66,0,114,0,111,0,119,0,115,0,101,0,114,0,32,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,32,0,76,0,111,0,97,0,100,0,101,0,114,0,0,0,0,0,56,0,12,0,1,0,70,0,105,0,108,0,101,0,86,0,101,0,114,0,115,0,105,0,111,0,110,0,0,0,0,0,49,0,46, - 0,48,0,46,0,50,0,51,0,54,0,53,0,46,0,52,0,54,0,0,0,70,0,19,0,1,0,73,0,110,0,116,0,101,0,114,0,110,0,97,0,108,0,78,0,97,0,109,0,101,0,0,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,50,0,76,0,111,0,97,0,100,0,101,0,114,0,46,0,100,0,108,0,108,0,0,0, - 0,0,144,0,54,0,1,0,76,0,101,0,103,0,97,0,108,0,67,0,111,0,112,0,121,0,114,0,105,0,103,0,104,0,116,0,0,0,67,0,111,0,112,0,121,0,114,0,105,0,103,0,104,0,116,0,32,0,77,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,32,0,67,0,111,0,114,0,112,0, - 111,0,114,0,97,0,116,0,105,0,111,0,110,0,46,0,32,0,65,0,108,0,108,0,32,0,114,0,105,0,103,0,104,0,116,0,115,0,32,0,114,0,101,0,115,0,101,0,114,0,118,0,101,0,100,0,46,0,0,0,78,0,19,0,1,0,79,0,114,0,105,0,103,0,105,0,110,0,97,0,108,0,70,0,105,0, - 108,0,101,0,110,0,97,0,109,0,101,0,0,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,50,0,76,0,111,0,97,0,100,0,101,0,114,0,46,0,100,0,108,0,108,0,0,0,0,0,126,0,47,0,1,0,80,0,114,0,111,0,100,0,117,0,99,0,116,0,78,0,97,0,109,0,101,0,0,0,0,0,77,0,105, - 0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,32,0,69,0,100,0,103,0,101,0,32,0,69,0,109,0,98,0,101,0,100,0,100,0,101,0,100,0,32,0,66,0,114,0,111,0,119,0,115,0,101,0,114,0,32,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,32,0,76,0,111,0,97,0,100,0,101, - 0,114,0,0,0,0,0,60,0,12,0,1,0,80,0,114,0,111,0,100,0,117,0,99,0,116,0,86,0,101,0,114,0,115,0,105,0,111,0,110,0,0,0,49,0,46,0,48,0,46,0,50,0,51,0,54,0,53,0,46,0,52,0,54,0,0,0,60,0,10,0,1,0,67,0,111,0,109,0,112,0,97,0,110,0,121,0,83,0,104,0,111, - 0,114,0,116,0,78,0,97,0,109,0,101,0,0,0,77,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,0,0,134,0,47,0,1,0,80,0,114,0,111,0,100,0,117,0,99,0,116,0,83,0,104,0,111,0,114,0,116,0,78,0,97,0,109,0,101,0,0,0,77,0,105,0,99,0,114,0,111,0,115,0,111, - 0,102,0,116,0,32,0,69,0,100,0,103,0,101,0,32,0,69,0,109,0,98,0,101,0,100,0,100,0,101,0,100,0,32,0,66,0,114,0,111,0,119,0,115,0,101,0,114,0,32,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,32,0,76,0,111,0,97,0,100,0,101,0,114,0,0,0,0,0,110,0,41,0, - 1,0,76,0,97,0,115,0,116,0,67,0,104,0,97,0,110,0,103,0,101,0,0,0,52,0,56,0,100,0,49,0,56,0,99,0,98,0,55,0,48,0,49,0,97,0,101,0,50,0,102,0,97,0,57,0,50,0,48,0,52,0,57,0,98,0,57,0,54,0,56,0,97,0,98,0,54,0,99,0,49,0,52,0,53,0,55,0,50,0,50,0,100, - 0,49,0,48,0,101,0,49,0,50,0,0,0,0,0,40,0,2,0,1,0,79,0,102,0,102,0,105,0,99,0,105,0,97,0,108,0,32,0,66,0,117,0,105,0,108,0,100,0,0,0,49,0,0,0,68,0,0,0,1,0,86,0,97,0,114,0,70,0,105,0,108,0,101,0,73,0,110,0,102,0,111,0,0,0,0,0,36,0,4,0,0,0,84,0, - 114,0,97,0,110,0,115,0,108,0,97,0,116,0,105,0,111,0,110,0,0,0,0,0,9,4,176,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,1,0,72,1,0,0,48,160,56,160,64,160,96,160,104,160,112,160,136,160,144,160,152,160,184,160,192,160,120,161,144,161,152,161,160,161,80,162,88,162,8,163,16,163,32,163, - 48,163,56,163,64,163,72,163,80,163,88,163,96,163,104,163,120,163,128,163,136,163,144,163,152,163,160,163,168,163,176,163,200,163,216,163,232,163,240,163,248,163,0,164,8,164,216,165,224,165,232,165,0,166,16,166,32,166,48,166,64,166,80,166,96, - 166,112,166,128,166,144,166,160,166,176,166,192,166,208,166,224,166,240,166,0,167,16,167,32,167,48,167,64,167,80,167,96,167,112,167,128,167,144,167,160,167,176,167,192,167,208,167,224,167,240,167,0,168,16,168,32,168,48,168,64,168,80,168,96,168, - 112,168,128,168,144,168,160,168,176,168,192,168,208,168,224,168,240,168,0,169,16,169,32,169,48,169,64,169,80,169,96,169,112,169,128,169,144,169,160,169,176,169,192,169,208,169,224,169,240,169,0,170,16,170,32,170,48,170,64,170,80,170,96,170,112, - 170,128,170,144,170,160,170,176,170,192,170,208,170,224,170,240,170,0,171,16,171,32,171,48,171,64,171,80,171,96,171,112,171,128,171,144,171,160,171,176,171,192,171,208,171,224,171,240,171,0,172,16,172,32,172,48,172,64,172,80,172,96,172,112,172, - 128,172,144,172,160,172,176,172,192,172,208,172,224,172,240,172,0,173,0,0,0,96,1,0,224,0,0,0,224,163,232,163,240,163,248,163,0,164,8,164,16,164,24,164,32,164,40,164,48,164,56,164,64,164,72,164,80,164,88,164,96,164,104,164,112,164,120,164,128, - 164,144,170,152,170,160,170,168,170,176,170,184,170,192,170,200,170,208,170,216,170,224,170,232,170,240,170,248,170,0,171,8,171,16,171,24,171,32,171,40,171,48,171,56,171,64,171,72,171,80,171,88,171,96,171,104,171,112,171,120,171,128,171,136, - 171,144,171,152,171,160,171,168,171,176,171,184,171,192,171,200,171,208,171,216,171,224,171,240,171,248,171,0,172,8,172,16,172,24,172,32,172,40,172,48,172,56,172,64,172,72,172,80,172,88,172,96,172,104,172,112,172,120,172,128,172,136,172,144, - 172,152,172,160,172,168,172,176,172,184,172,192,172,200,172,208,172,216,172,224,172,232,172,240,172,248,172,0,173,8,173,16,173,24,173,32,173,40,173,48,173,56,173,64,173,72,173,0,112,1,0,184,0,0,0,152,170,168,170,184,170,200,170,216,170,232,170, - 248,170,8,171,24,171,40,171,56,171,72,171,88,171,104,171,120,171,136,171,152,171,168,171,184,171,200,171,216,171,232,171,248,171,8,172,24,172,40,172,56,172,72,172,88,172,104,172,120,172,136,172,152,172,168,172,184,172,200,172,216,172,232,172, - 248,172,8,173,24,173,40,173,56,173,72,173,88,173,104,173,120,173,136,173,152,173,168,173,184,173,200,173,216,173,232,173,248,173,8,174,24,174,40,174,56,174,72,174,88,174,104,174,120,174,136,174,152,174,168,174,184,174,200,174,216,174,232,174, - 248,174,8,175,24,175,40,175,56,175,72,175,88,175,104,175,120,175,136,175,152,175,168,175,184,175,200,175,216,175,232,175,248,175,0,0,0,128,1,0,36,1,0,0,8,160,24,160,40,160,56,160,72,160,88,160,104,160,120,160,136,160,152,160,168,160,184,160, - 200,160,216,160,232,160,248,160,8,161,24,161,40,161,56,161,72,161,88,161,104,161,120,161,136,161,152,161,168,161,184,161,200,161,216,161,232,161,248,161,8,162,24,162,40,162,56,162,72,162,88,162,104,162,120,162,136,162,152,162,168,162,184,162, - 200,162,216,162,232,162,248,162,8,163,24,163,40,163,56,163,72,163,88,163,104,163,120,163,136,163,152,163,168,163,184,163,200,163,216,163,232,163,248,163,8,164,24,164,40,164,56,164,72,164,88,164,104,164,120,164,136,164,152,164,168,164,184,164, - 200,164,216,164,232,164,248,164,8,165,24,165,40,165,56,165,72,165,88,165,104,165,120,165,136,165,152,165,168,165,184,165,200,165,216,165,232,165,248,165,8,166,24,166,40,166,56,166,72,166,88,166,104,166,120,166,136,166,152,166,168,166,184,166, - 200,166,216,166,232,166,248,166,8,167,24,167,40,167,56,167,72,167,88,167,104,167,120,167,136,167,152,167,168,167,184,167,200,167,216,167,232,167,248,167,8,168,24,168,40,168,56,168,72,168,88,168,104,168,120,168,136,168,152,168,168,168,184,168, - 200,168,0,0,0,144,1,0,108,1,0,0,240,164,0,165,16,165,32,165,48,165,64,165,80,165,96,165,112,165,128,165,144,165,160,165,176,165,192,165,208,165,224,165,240,165,0,166,16,166,32,166,48,166,64,166,80,166,96,166,112,166,128,166,144,166,160,166,176, - 166,192,166,208,166,224,166,240,166,0,167,16,167,32,167,48,167,64,167,80,167,96,167,112,167,128,167,144,167,160,167,176,167,192,167,208,167,224,167,240,167,0,168,16,168,32,168,48,168,64,168,80,168,96,168,112,168,128,168,144,168,160,168,176,168, - 192,168,208,168,224,168,240,168,0,169,16,169,32,169,48,169,64,169,80,169,96,169,112,169,128,169,144,169,160,169,176,169,192,169,208,169,224,169,240,169,0,170,16,170,32,170,48,170,64,170,80,170,96,170,112,170,128,170,144,170,160,170,176,170,192, - 170,208,170,224,170,240,170,0,171,16,171,32,171,48,171,64,171,80,171,96,171,112,171,128,171,144,171,160,171,176,171,192,171,208,171,224,171,240,171,0,172,16,172,32,172,48,172,64,172,80,172,96,172,112,172,128,172,144,172,160,172,176,172,192,172, - 208,172,224,172,240,172,0,173,16,173,32,173,48,173,64,173,80,173,96,173,112,173,128,173,144,173,160,173,176,173,192,173,208,173,224,173,240,173,0,174,16,174,32,174,48,174,64,174,80,174,96,174,112,174,128,174,144,174,160,174,176,174,192,174,208, - 174,224,174,240,174,0,175,16,175,32,175,48,175,64,175,80,175,96,175,112,175,128,175,144,175,160,175,176,175,192,175,208,175,224,175,240,175,0,0,0,160,1,0,136,0,0,0,0,160,16,160,32,160,48,160,64,160,80,160,96,160,112,160,128,160,144,160,160,160, - 176,160,192,160,208,160,224,160,240,160,0,161,16,161,32,161,48,161,64,161,80,161,96,161,112,161,128,161,144,161,160,161,176,161,192,161,208,161,224,161,240,161,0,162,16,162,32,162,48,162,64,162,80,162,96,162,112,162,128,162,144,162,160,162,176, - 162,192,162,208,162,224,162,240,162,0,163,16,163,32,163,184,173,192,173,224,173,232,173,240,173,248,173,0,174,16,174,24,174,32,174,40,174,48,174,0,0,0,176,1,0,16,0,0,0,168,171,176,171,184,171,192,171,0,192,1,0,24,0,0,0,160,164,168,164,184,164, - 216,164,224,164,8,165,16,165,24,165,0,240,1,0,104,0,0,0,128,165,200,165,232,165,8,166,40,166,72,166,120,166,144,166,152,166,160,166,216,166,224,166,0,168,16,168,24,168,32,168,40,168,48,168,56,168,64,168,72,168,80,168,88,168,104,168,112,168,120, - 168,128,168,136,168,144,168,152,168,160,168,192,169,248,169,32,170,72,170,120,170,160,170,208,170,216,170,224,170,232,170,240,170,248,170,0,171,8,171,24,171,32,171,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,232,39,0,0,0,2,2,0,48,130,39,215,6,9,42,134,72, - 134,247,13,1,7,2,160,130,39,200,48,130,39,196,2,1,1,49,15,48,13,6,9,96,134,72,1,101,3,4,2,1,5,0,48,92,6,10,43,6,1,4,1,130,55,2,1,4,160,78,48,76,48,23,6,10,43,6,1,4,1,130,55,2,1,15,48,9,3,1,0,160,4,162,2,128,0,48,49,48,13,6,9,96,134,72,1,101, - 3,4,2,1,5,0,4,32,83,49,22,34,225,40,117,81,106,28,87,65,233,140,37,107,55,173,237,230,4,217,113,176,253,126,13,16,97,137,47,175,160,130,13,133,48,130,6,3,48,130,3,235,160,3,2,1,2,2,19,51,0,0,3,164,203,227,86,184,203,127,228,39,0,0,0,0,3,164, - 48,13,6,9,42,134,72,134,247,13,1,1,11,5,0,48,126,49,11,48,9,6,3,85,4,6,19,2,85,83,49,19,48,17,6,3,85,4,8,19,10,87,97,115,104,105,110,103,116,111,110,49,16,48,14,6,3,85,4,7,19,7,82,101,100,109,111,110,100,49,30,48,28,6,3,85,4,10,19,21,77,105, - 99,114,111,115,111,102,116,32,67,111,114,112,111,114,97,116,105,111,110,49,40,48,38,6,3,85,4,3,19,31,77,105,99,114,111,115,111,102,116,32,67,111,100,101,32,83,105,103,110,105,110,103,32,80,67,65,32,50,48,49,49,48,30,23,13,50,51,49,48,49,57,49, - 57,53,49,53,53,90,23,13,50,52,49,48,49,54,49,57,53,49,53,53,90,48,116,49,11,48,9,6,3,85,4,6,19,2,85,83,49,19,48,17,6,3,85,4,8,19,10,87,97,115,104,105,110,103,116,111,110,49,16,48,14,6,3,85,4,7,19,7,82,101,100,109,111,110,100,49,30,48,28,6,3, - 85,4,10,19,21,77,105,99,114,111,115,111,102,116,32,67,111,114,112,111,114,97,116,105,111,110,49,30,48,28,6,3,85,4,3,19,21,77,105,99,114,111,115,111,102,116,32,67,111,114,112,111,114,97,116,105,111,110,48,130,1,34,48,13,6,9,42,134,72,134,247, - 13,1,1,1,5,0,3,130,1,15,0,48,130,1,10,2,130,1,1,0,219,186,45,50,154,234,129,89,235,136,249,215,63,101,133,20,5,217,106,22,213,220,217,220,142,109,201,11,120,196,114,216,99,247,176,230,190,221,248,180,155,79,177,239,233,148,142,168,175,107,101, - 215,84,32,232,248,236,243,51,238,229,44,87,74,113,108,121,230,157,104,57,39,180,237,106,36,182,216,193,16,114,106,250,186,227,190,105,146,100,143,32,161,22,126,135,155,107,176,18,159,76,210,51,136,42,63,137,109,135,208,214,161,139,70,80,25,202, - 59,183,85,229,66,33,250,79,80,6,5,88,183,222,189,122,212,78,224,1,82,192,188,83,62,30,184,202,2,80,95,193,33,136,223,171,100,216,168,15,141,212,221,24,185,202,11,177,144,191,238,71,227,75,252,228,151,59,121,223,130,112,135,141,1,47,216,223,173, - 225,236,233,220,124,137,119,178,164,80,176,194,131,138,67,33,147,122,104,214,196,96,2,109,19,88,9,191,85,145,71,141,28,150,198,55,36,220,176,150,168,61,125,213,139,115,4,47,253,43,203,87,225,174,250,144,110,121,144,3,46,232,149,73,197,203,51, - 160,182,181,2,3,1,0,1,163,130,1,130,48,130,1,126,48,31,6,3,85,29,37,4,24,48,22,6,10,43,6,1,4,1,130,55,10,3,21,6,8,43,6,1,5,5,7,3,3,48,29,6,3,85,29,14,4,22,4,20,226,195,165,151,136,221,111,57,242,153,145,5,120,7,200,252,136,142,168,85,48,84,6, - 3,85,29,17,4,77,48,75,164,73,48,71,49,45,48,43,6,3,85,4,11,19,36,77,105,99,114,111,115,111,102,116,32,73,114,101,108,97,110,100,32,79,112,101,114,97,116,105,111,110,115,32,76,105,109,105,116,101,100,49,22,48,20,6,3,85,4,5,19,13,50,51,48,50,49, - 55,43,53,48,49,54,55,49,48,31,6,3,85,29,35,4,24,48,22,128,20,72,110,100,229,80,5,211,130,170,23,55,55,34,181,109,168,202,117,2,149,48,84,6,3,85,29,31,4,77,48,75,48,73,160,71,160,69,134,67,104,116,116,112,58,47,47,119,119,119,46,109,105,99,114, - 111,115,111,102,116,46,99,111,109,47,112,107,105,111,112,115,47,99,114,108,47,77,105,99,67,111,100,83,105,103,80,67,65,50,48,49,49,95,50,48,49,49,45,48,55,45,48,56,46,99,114,108,48,97,6,8,43,6,1,5,5,7,1,1,4,85,48,83,48,81,6,8,43,6,1,5,5,7,48, - 2,134,69,104,116,116,112,58,47,47,119,119,119,46,109,105,99,114,111,115,111,102,116,46,99,111,109,47,112,107,105,111,112,115,47,99,101,114,116,115,47,77,105,99,67,111,100,83,105,103,80,67,65,50,48,49,49,95,50,48,49,49,45,48,55,45,48,56,46,99, - 114,116,48,12,6,3,85,29,19,1,1,255,4,2,48,0,48,13,6,9,42,134,72,134,247,13,1,1,11,5,0,3,130,2,1,0,122,220,16,76,109,248,84,226,112,43,238,135,93,145,91,111,246,36,81,233,70,98,171,9,118,222,171,130,79,218,210,84,76,85,221,97,49,52,158,200,247, - 61,104,254,139,205,78,66,255,220,69,233,86,38,162,9,23,71,194,16,135,235,61,235,83,197,3,49,196,94,15,7,166,113,249,206,93,198,64,175,64,212,217,86,163,91,12,40,207,185,88,235,58,147,31,207,68,73,211,165,28,240,217,97,180,133,90,157,127,103, - 8,172,219,184,69,49,248,167,9,170,194,229,232,69,154,39,111,174,38,146,146,211,147,56,12,218,139,66,171,147,200,6,252,4,210,109,235,175,127,222,39,202,90,64,113,132,51,38,52,150,212,200,88,36,183,192,3,174,174,33,184,89,210,139,11,42,145,249, - 184,138,202,100,65,96,217,44,141,248,206,196,216,14,58,174,168,201,186,89,137,175,2,232,74,19,226,62,89,134,130,85,72,4,238,80,31,108,125,183,63,54,100,126,245,142,171,4,14,237,67,27,14,153,84,110,47,116,180,151,209,157,111,194,231,144,133,8, - 97,135,38,42,55,179,225,249,48,8,79,217,100,216,14,170,209,227,100,171,84,209,16,113,37,230,231,185,229,180,123,254,41,134,194,175,14,31,53,239,128,14,152,37,247,48,128,120,48,35,112,178,51,138,248,131,201,35,197,214,196,180,247,190,98,222,178, - 10,209,35,78,50,177,87,50,250,199,35,238,130,218,100,136,211,178,209,178,103,153,215,24,97,194,236,39,22,222,230,104,130,173,159,210,103,62,110,27,170,20,169,229,1,166,84,206,12,168,180,95,54,225,217,135,127,97,19,151,14,15,136,142,169,80,174, - 199,144,236,56,78,89,56,28,226,188,190,44,21,65,112,76,91,145,194,78,167,209,30,117,49,156,231,225,162,41,254,153,149,195,95,114,59,198,231,82,116,181,124,174,2,108,96,229,144,43,114,232,154,226,203,190,26,166,93,138,246,151,228,160,178,204, - 189,9,14,162,133,12,44,180,78,135,252,230,48,40,109,208,173,188,251,71,54,97,38,190,137,244,145,125,6,7,50,10,217,179,54,55,211,235,9,114,153,195,38,199,242,29,86,150,65,142,60,211,91,64,233,68,161,206,255,47,232,200,235,26,144,183,48,130,7, - 122,48,130,5,98,160,3,2,1,2,2,10,97,14,144,210,0,0,0,0,0,3,48,13,6,9,42,134,72,134,247,13,1,1,11,5,0,48,129,136,49,11,48,9,6,3,85,4,6,19,2,85,83,49,19,48,17,6,3,85,4,8,19,10,87,97,115,104,105,110,103,116,111,110,49,16,48,14,6,3,85,4,7,19,7,82, - 101,100,109,111,110,100,49,30,48,28,6,3,85,4,10,19,21,77,105,99,114,111,115,111,102,116,32,67,111,114,112,111,114,97,116,105,111,110,49,50,48,48,6,3,85,4,3,19,41,77,105,99,114,111,115,111,102,116,32,82,111,111,116,32,67,101,114,116,105,102,105, - 99,97,116,101,32,65,117,116,104,111,114,105,116,121,32,50,48,49,49,48,30,23,13,49,49,48,55,48,56,50,48,53,57,48,57,90,23,13,50,54,48,55,48,56,50,49,48,57,48,57,90,48,126,49,11,48,9,6,3,85,4,6,19,2,85,83,49,19,48,17,6,3,85,4,8,19,10,87,97,115, - 104,105,110,103,116,111,110,49,16,48,14,6,3,85,4,7,19,7,82,101,100,109,111,110,100,49,30,48,28,6,3,85,4,10,19,21,77,105,99,114,111,115,111,102,116,32,67,111,114,112,111,114,97,116,105,111,110,49,40,48,38,6,3,85,4,3,19,31,77,105,99,114,111,115, - 111,102,116,32,67,111,100,101,32,83,105,103,110,105,110,103,32,80,67,65,32,50,48,49,49,48,130,2,34,48,13,6,9,42,134,72,134,247,13,1,1,1,5,0,3,130,2,15,0,48,130,2,10,2,130,2,1,0,171,240,250,114,16,28,46,173,216,110,170,130,16,77,52,186,242,182, - 88,33,159,66,27,42,107,233,90,80,170,184,6,56,26,4,73,186,127,195,12,30,221,55,107,198,18,216,11,240,56,194,153,6,176,200,57,213,1,20,49,66,211,137,13,121,100,135,126,148,96,36,108,175,158,73,156,233,104,94,210,223,155,83,178,10,44,195,175,217, - 169,43,174,122,9,175,215,150,89,202,96,26,5,233,102,118,232,50,82,38,18,47,231,171,8,80,207,179,68,183,93,216,196,46,3,117,171,104,243,203,109,243,58,92,161,22,244,70,186,224,56,100,172,110,100,53,120,166,160,99,15,45,211,64,147,248,227,222, - 7,13,213,92,121,165,73,41,231,13,190,160,19,119,190,148,61,239,251,227,43,90,16,31,77,86,40,162,122,114,224,18,58,183,73,94,216,237,237,67,145,131,217,123,178,123,134,27,217,62,177,140,93,232,137,79,132,26,242,161,47,89,228,144,59,45,174,51, - 88,197,183,62,254,50,211,179,3,61,177,178,175,146,56,126,210,157,128,44,245,78,86,145,33,53,37,195,57,110,100,127,83,186,156,15,173,25,35,132,203,244,186,3,134,141,247,95,240,208,82,191,140,148,135,188,192,33,116,37,95,24,40,182,204,39,40,56, - 37,152,57,74,54,207,124,177,146,174,28,35,167,169,102,236,97,31,106,225,40,73,157,95,136,226,37,93,211,33,75,62,82,196,181,87,63,36,3,240,209,122,91,47,213,35,227,112,93,15,81,70,119,179,248,0,225,188,172,2,130,95,219,192,21,179,189,27,212,85, - 75,231,57,161,15,233,35,73,188,24,184,68,124,69,228,193,195,114,122,224,114,231,36,223,191,70,153,197,239,194,28,87,219,131,141,236,77,73,48,167,171,142,223,236,91,159,175,252,221,176,102,226,193,151,129,123,237,214,237,75,231,73,41,167,19,40, - 166,167,125,103,128,230,138,98,120,95,178,47,132,215,87,156,92,191,119,40,40,241,237,109,195,40,143,44,143,64,55,79,193,225,133,68,137,196,9,76,197,212,165,67,47,116,149,247,110,248,120,32,88,44,19,93,96,149,154,62,79,51,132,218,176,136,23,222, - 158,78,244,150,176,188,70,160,108,152,210,224,214,136,140,11,2,3,1,0,1,163,130,1,237,48,130,1,233,48,16,6,9,43,6,1,4,1,130,55,21,1,4,3,2,1,0,48,29,6,3,85,29,14,4,22,4,20,72,110,100,229,80,5,211,130,170,23,55,55,34,181,109,168,202,117,2,149,48, - 25,6,9,43,6,1,4,1,130,55,20,2,4,12,30,10,0,83,0,117,0,98,0,67,0,65,48,11,6,3,85,29,15,4,4,3,2,1,134,48,15,6,3,85,29,19,1,1,255,4,5,48,3,1,1,255,48,31,6,3,85,29,35,4,24,48,22,128,20,114,45,58,2,49,144,67,185,20,5,78,225,234,167,199,49,209,35, - 137,52,48,90,6,3,85,29,31,4,83,48,81,48,79,160,77,160,75,134,73,104,116,116,112,58,47,47,99,114,108,46,109,105,99,114,111,115,111,102,116,46,99,111,109,47,112,107,105,47,99,114,108,47,112,114,111,100,117,99,116,115,47,77,105,99,82,111,111,67, - 101,114,65,117,116,50,48,49,49,95,50,48,49,49,95,48,51,95,50,50,46,99,114,108,48,94,6,8,43,6,1,5,5,7,1,1,4,82,48,80,48,78,6,8,43,6,1,5,5,7,48,2,134,66,104,116,116,112,58,47,47,119,119,119,46,109,105,99,114,111,115,111,102,116,46,99,111,109,47, - 112,107,105,47,99,101,114,116,115,47,77,105,99,82,111,111,67,101,114,65,117,116,50,48,49,49,95,50,48,49,49,95,48,51,95,50,50,46,99,114,116,48,129,159,6,3,85,29,32,4,129,151,48,129,148,48,129,145,6,9,43,6,1,4,1,130,55,46,3,48,129,131,48,63,6, - 8,43,6,1,5,5,7,2,1,22,51,104,116,116,112,58,47,47,119,119,119,46,109,105,99,114,111,115,111,102,116,46,99,111,109,47,112,107,105,111,112,115,47,100,111,99,115,47,112,114,105,109,97,114,121,99,112,115,46,104,116,109,48,64,6,8,43,6,1,5,5,7,2,2, - 48,52,30,50,32,29,0,76,0,101,0,103,0,97,0,108,0,95,0,112,0,111,0,108,0,105,0,99,0,121,0,95,0,115,0,116,0,97,0,116,0,101,0,109,0,101,0,110,0,116,0,46,32,29,48,13,6,9,42,134,72,134,247,13,1,1,11,5,0,3,130,2,1,0,103,242,134,165,152,224,84,121,26, - 46,211,216,116,103,34,155,11,150,17,225,99,146,153,66,150,125,210,121,12,144,193,101,95,46,44,62,248,195,114,209,109,131,254,190,63,232,10,202,59,191,71,169,163,243,105,219,99,191,34,53,165,151,93,101,132,144,125,139,70,80,85,216,12,146,124, - 210,26,75,28,243,60,66,139,82,208,176,253,107,227,62,7,46,41,155,230,61,27,165,212,181,29,119,148,57,226,233,100,201,68,61,120,122,35,243,19,125,166,144,116,131,141,244,203,38,2,70,42,194,138,16,187,164,169,5,12,155,237,104,250,104,46,149,160, - 42,63,42,107,88,73,99,31,9,105,110,90,152,150,228,131,244,192,143,243,70,43,222,252,59,208,189,53,239,110,37,174,229,175,39,237,208,221,243,14,175,153,40,151,152,77,14,61,11,242,8,137,214,31,195,50,24,226,240,197,45,206,91,158,180,73,57,10,198, - 10,194,198,173,174,229,178,217,219,21,136,81,69,88,56,50,113,39,26,127,177,244,39,248,222,44,58,32,105,152,178,89,137,104,110,111,167,183,116,195,64,5,6,166,1,42,40,62,130,63,19,77,102,11,192,179,77,245,225,143,127,28,111,21,125,69,167,118,229, - 64,42,101,163,195,93,82,98,134,195,29,99,54,151,134,223,218,243,248,242,22,161,154,39,225,205,165,151,208,238,93,99,65,227,91,7,156,135,62,6,119,6,209,6,177,117,31,20,190,97,97,181,240,220,198,27,4,190,223,65,199,14,40,238,222,101,47,236,151, - 246,161,92,150,216,0,214,161,70,189,89,243,151,165,9,75,72,16,153,128,31,208,0,41,197,177,155,165,63,69,119,30,53,198,210,162,162,159,122,122,34,250,72,149,31,171,251,71,35,128,245,158,248,191,107,183,75,151,226,235,117,120,26,236,234,55,153, - 121,24,75,255,214,179,35,104,117,230,175,250,252,139,235,11,128,234,105,59,175,252,48,237,4,76,142,223,223,117,109,99,145,61,209,157,86,78,79,191,128,87,34,161,120,17,50,33,122,239,65,10,177,63,251,168,204,164,93,193,161,136,155,87,113,86,78, - 72,69,192,66,201,155,118,91,10,128,72,107,253,121,159,193,189,109,109,106,201,82,115,19,13,122,80,205,49,130,25,197,48,130,25,193,2,1,1,48,129,149,48,126,49,11,48,9,6,3,85,4,6,19,2,85,83,49,19,48,17,6,3,85,4,8,19,10,87,97,115,104,105,110,103, - 116,111,110,49,16,48,14,6,3,85,4,7,19,7,82,101,100,109,111,110,100,49,30,48,28,6,3,85,4,10,19,21,77,105,99,114,111,115,111,102,116,32,67,111,114,112,111,114,97,116,105,111,110,49,40,48,38,6,3,85,4,3,19,31,77,105,99,114,111,115,111,102,116,32, - 67,111,100,101,32,83,105,103,110,105,110,103,32,80,67,65,32,50,48,49,49,2,19,51,0,0,3,164,203,227,86,184,203,127,228,39,0,0,0,0,3,164,48,13,6,9,96,134,72,1,101,3,4,2,1,5,0,160,129,212,48,25,6,9,42,134,72,134,247,13,1,9,3,49,12,6,10,43,6,1,4, - 1,130,55,2,1,4,48,28,6,10,43,6,1,4,1,130,55,2,1,11,49,14,48,12,6,10,43,6,1,4,1,130,55,2,1,21,48,47,6,9,42,134,72,134,247,13,1,9,4,49,34,4,32,238,215,210,46,252,165,190,63,241,22,207,10,184,30,235,157,183,136,165,41,166,40,40,198,128,57,115,87, - 81,74,237,2,48,104,6,10,43,6,1,4,1,130,55,2,1,12,49,90,48,88,160,56,128,54,0,77,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,32,0,69,0,100,0,103,0,101,0,32,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,50,0,32,0,83,0,68,0,75,161,28,128,26,104, - 116,116,112,115,58,47,47,119,119,119,46,109,105,99,114,111,115,111,102,116,46,99,111,109,32,48,13,6,9,42,134,72,134,247,13,1,1,1,5,0,4,130,1,0,7,51,21,57,61,69,43,192,175,81,166,68,37,152,75,99,30,95,214,153,207,12,134,212,33,137,150,209,108, - 84,100,66,228,106,63,4,164,137,231,66,246,168,183,215,48,42,16,123,19,51,127,103,170,211,67,33,86,102,253,107,219,73,243,73,131,126,116,147,40,158,247,246,178,207,100,169,213,182,11,54,95,130,39,217,179,152,73,143,15,124,173,103,119,106,26,161, - 73,63,199,57,52,108,32,118,41,193,14,141,220,57,216,150,54,126,194,152,200,234,23,234,78,138,115,95,121,122,26,38,242,56,4,227,196,117,27,139,7,119,115,18,151,113,233,12,226,121,13,38,112,171,67,177,82,248,248,73,29,127,33,72,208,114,28,241, - 198,247,175,218,24,232,156,71,27,34,176,114,95,77,146,206,65,73,43,122,140,5,98,99,113,144,209,93,245,7,151,34,148,208,191,43,39,218,181,31,48,140,74,165,172,98,97,152,244,180,40,251,29,142,167,85,32,109,195,248,184,66,233,246,250,220,201,149, - 143,171,18,81,147,97,195,145,50,253,151,32,92,122,245,30,66,166,62,226,192,177,36,105,161,130,23,41,48,130,23,37,6,10,43,6,1,4,1,130,55,3,3,1,49,130,23,21,48,130,23,17,6,9,42,134,72,134,247,13,1,7,2,160,130,23,2,48,130,22,254,2,1,3,49,15,48, - 13,6,9,96,134,72,1,101,3,4,2,1,5,0,48,130,1,89,6,11,42,134,72,134,247,13,1,9,16,1,4,160,130,1,72,4,130,1,68,48,130,1,64,2,1,1,6,10,43,6,1,4,1,132,89,10,3,1,48,49,48,13,6,9,96,134,72,1,101,3,4,2,1,5,0,4,32,85,222,115,171,191,149,39,179,250,177, - 243,114,25,117,231,248,76,246,143,84,15,38,14,86,176,1,141,241,159,241,123,134,2,6,101,186,159,255,244,49,24,19,50,48,50,52,48,50,50,48,48,56,49,56,52,56,46,56,55,49,90,48,4,128,2,1,244,160,129,216,164,129,213,48,129,210,49,11,48,9,6,3,85,4, - 6,19,2,85,83,49,19,48,17,6,3,85,4,8,19,10,87,97,115,104,105,110,103,116,111,110,49,16,48,14,6,3,85,4,7,19,7,82,101,100,109,111,110,100,49,30,48,28,6,3,85,4,10,19,21,77,105,99,114,111,115,111,102,116,32,67,111,114,112,111,114,97,116,105,111,110, - 49,45,48,43,6,3,85,4,11,19,36,77,105,99,114,111,115,111,102,116,32,73,114,101,108,97,110,100,32,79,112,101,114,97,116,105,111,110,115,32,76,105,109,105,116,101,100,49,38,48,36,6,3,85,4,11,19,29,84,104,97,108,101,115,32,84,83,83,32,69,83,78,58, - 48,56,52,50,45,52,66,69,54,45,67,50,57,65,49,37,48,35,6,3,85,4,3,19,28,77,105,99,114,111,115,111,102,116,32,84,105,109,101,45,83,116,97,109,112,32,83,101,114,118,105,99,101,160,130,17,120,48,130,7,39,48,130,5,15,160,3,2,1,2,2,19,51,0,0,1,218, - 142,213,201,90,0,209,17,177,0,1,0,0,1,218,48,13,6,9,42,134,72,134,247,13,1,1,11,5,0,48,124,49,11,48,9,6,3,85,4,6,19,2,85,83,49,19,48,17,6,3,85,4,8,19,10,87,97,115,104,105,110,103,116,111,110,49,16,48,14,6,3,85,4,7,19,7,82,101,100,109,111,110, - 100,49,30,48,28,6,3,85,4,10,19,21,77,105,99,114,111,115,111,102,116,32,67,111,114,112,111,114,97,116,105,111,110,49,38,48,36,6,3,85,4,3,19,29,77,105,99,114,111,115,111,102,116,32,84,105,109,101,45,83,116,97,109,112,32,80,67,65,32,50,48,49,48, - 48,30,23,13,50,51,49,48,49,50,49,57,48,54,53,57,90,23,13,50,53,48,49,49,48,49,57,48,54,53,57,90,48,129,210,49,11,48,9,6,3,85,4,6,19,2,85,83,49,19,48,17,6,3,85,4,8,19,10,87,97,115,104,105,110,103,116,111,110,49,16,48,14,6,3,85,4,7,19,7,82,101, - 100,109,111,110,100,49,30,48,28,6,3,85,4,10,19,21,77,105,99,114,111,115,111,102,116,32,67,111,114,112,111,114,97,116,105,111,110,49,45,48,43,6,3,85,4,11,19,36,77,105,99,114,111,115,111,102,116,32,73,114,101,108,97,110,100,32,79,112,101,114,97, - 116,105,111,110,115,32,76,105,109,105,116,101,100,49,38,48,36,6,3,85,4,11,19,29,84,104,97,108,101,115,32,84,83,83,32,69,83,78,58,48,56,52,50,45,52,66,69,54,45,67,50,57,65,49,37,48,35,6,3,85,4,3,19,28,77,105,99,114,111,115,111,102,116,32,84,105, - 109,101,45,83,116,97,109,112,32,83,101,114,118,105,99,101,48,130,2,34,48,13,6,9,42,134,72,134,247,13,1,1,1,5,0,3,130,2,15,0,48,130,2,10,2,130,2,1,0,147,144,6,8,118,181,81,81,214,63,35,64,14,13,13,255,27,113,90,215,72,221,60,208,35,74,61,36,40, - 237,46,123,176,41,207,83,65,74,23,142,240,216,190,170,30,220,38,224,73,194,148,93,156,174,229,197,167,249,123,62,147,16,131,110,68,237,127,49,14,107,241,175,192,65,19,168,128,72,3,194,126,180,222,110,235,192,177,149,156,37,136,114,238,154,224, - 10,224,95,236,232,157,94,152,44,91,92,188,167,165,108,238,192,246,106,234,127,210,235,222,99,23,151,148,171,108,62,51,2,166,81,228,147,70,218,248,120,11,134,141,9,235,194,157,142,45,195,51,98,185,247,1,242,247,26,237,177,130,190,95,215,171,108, - 49,153,218,105,151,223,190,185,105,46,80,239,251,160,15,19,21,131,60,163,243,76,137,159,165,11,158,73,195,246,46,36,81,12,85,134,165,117,117,207,195,23,165,1,122,236,223,186,73,12,121,222,237,175,53,4,100,196,114,149,174,234,134,252,20,121,9, - 96,204,36,33,165,152,243,251,59,16,130,149,229,61,204,239,25,221,34,170,190,229,0,44,31,84,106,32,230,153,72,205,209,49,190,221,83,3,194,102,121,255,53,245,164,202,192,125,72,84,66,48,96,176,58,186,244,188,145,23,64,233,28,111,49,198,255,254, - 233,77,140,139,134,113,236,178,144,192,23,19,41,213,172,177,189,86,242,184,173,250,194,176,98,247,143,125,11,154,39,110,131,234,48,173,192,163,65,168,24,154,177,164,214,16,114,145,120,165,163,214,1,241,12,178,229,13,74,132,107,135,235,149,119, - 204,92,188,107,73,48,108,160,81,179,197,81,224,123,104,61,140,61,207,80,221,112,151,217,4,237,157,135,53,247,200,3,34,164,33,166,233,41,175,154,246,175,70,197,225,203,205,57,142,32,41,15,35,126,179,79,219,238,139,54,207,200,145,88,98,100,232, - 207,110,185,61,184,247,120,5,87,255,73,44,104,57,96,146,66,37,114,62,203,25,14,252,229,231,100,155,46,26,221,62,205,98,221,29,46,23,33,112,70,215,186,15,187,146,172,21,244,83,29,17,37,161,29,157,35,161,176,105,172,72,200,60,146,29,131,173,188, - 140,157,149,174,238,226,87,231,124,40,216,254,162,147,2,3,1,0,1,163,130,1,73,48,130,1,69,48,29,6,3,85,29,14,4,22,4,20,161,124,141,201,81,61,102,19,149,139,49,20,87,8,77,128,191,15,95,69,48,31,6,3,85,29,35,4,24,48,22,128,20,159,167,21,93,0,94, - 98,93,131,244,229,210,101,167,27,83,53,25,233,114,48,95,6,3,85,29,31,4,88,48,86,48,84,160,82,160,80,134,78,104,116,116,112,58,47,47,119,119,119,46,109,105,99,114,111,115,111,102,116,46,99,111,109,47,112,107,105,111,112,115,47,99,114,108,47,77, - 105,99,114,111,115,111,102,116,37,50,48,84,105,109,101,45,83,116,97,109,112,37,50,48,80,67,65,37,50,48,50,48,49,48,40,49,41,46,99,114,108,48,108,6,8,43,6,1,5,5,7,1,1,4,96,48,94,48,92,6,8,43,6,1,5,5,7,48,2,134,80,104,116,116,112,58,47,47,119, - 119,119,46,109,105,99,114,111,115,111,102,116,46,99,111,109,47,112,107,105,111,112,115,47,99,101,114,116,115,47,77,105,99,114,111,115,111,102,116,37,50,48,84,105,109,101,45,83,116,97,109,112,37,50,48,80,67,65,37,50,48,50,48,49,48,40,49,41,46, - 99,114,116,48,12,6,3,85,29,19,1,1,255,4,2,48,0,48,22,6,3,85,29,37,1,1,255,4,12,48,10,6,8,43,6,1,5,5,7,3,8,48,14,6,3,85,29,15,1,1,255,4,4,3,2,7,128,48,13,6,9,42,134,72,134,247,13,1,1,11,5,0,3,130,2,1,0,185,131,85,212,237,184,141,35,0,75,120,212, - 237,142,51,192,148,219,126,211,24,204,161,172,106,251,23,50,130,16,86,151,198,218,42,147,242,14,109,10,226,171,87,26,29,88,118,191,43,144,219,137,243,221,55,78,6,254,235,114,207,234,156,248,206,198,117,197,47,38,79,121,165,139,176,219,128,69, - 89,148,86,44,149,97,120,215,96,30,67,195,54,150,102,4,156,99,193,138,47,188,134,143,37,171,135,191,22,37,72,33,238,177,53,251,149,67,230,29,63,234,187,61,116,20,106,3,50,61,126,22,115,238,202,108,142,223,47,159,30,116,88,76,91,5,36,135,238,183, - 218,108,119,167,118,151,170,109,57,150,253,23,220,105,63,134,20,139,19,250,13,158,143,188,17,40,138,191,66,25,236,160,95,38,164,83,79,29,93,106,253,98,191,172,95,194,134,139,228,132,147,3,190,90,173,17,53,162,247,177,168,148,228,138,106,102, - 66,245,182,32,112,242,159,207,111,30,119,110,86,39,45,116,86,212,61,63,159,130,255,103,78,124,54,179,213,25,158,57,189,187,41,183,160,133,173,18,124,247,43,137,55,206,69,91,234,60,52,154,222,127,77,237,216,83,99,191,184,244,143,30,190,134,157, - 246,23,89,240,39,200,56,247,237,194,221,241,77,125,145,132,198,73,9,90,5,149,166,199,114,247,219,243,138,218,20,206,156,207,145,24,147,236,117,105,81,34,94,216,10,233,29,49,159,92,35,49,113,223,208,5,165,74,58,145,147,59,210,157,18,179,22,198, - 112,18,94,248,85,168,101,41,88,72,248,40,189,69,63,126,232,103,52,197,108,201,239,52,8,80,81,55,38,40,177,231,238,202,47,192,43,29,240,88,245,65,75,207,139,39,110,130,123,66,42,119,32,0,219,145,78,25,47,72,144,242,63,8,198,182,187,105,38,31, - 78,133,30,126,103,45,221,211,58,245,247,248,17,232,118,42,31,77,176,168,162,166,30,124,244,10,127,197,45,99,17,41,107,126,50,255,131,246,91,161,164,185,119,214,182,124,14,125,242,107,155,14,242,195,231,30,79,63,126,251,211,75,230,253,143,143, - 34,25,169,217,244,239,185,45,172,157,215,153,6,108,147,169,197,13,29,19,102,10,79,167,141,93,231,48,130,7,113,48,130,5,89,160,3,2,1,2,2,19,51,0,0,0,21,197,231,107,158,2,155,73,153,0,0,0,0,0,21,48,13,6,9,42,134,72,134,247,13,1,1,11,5,0,48,129, - 136,49,11,48,9,6,3,85,4,6,19,2,85,83,49,19,48,17,6,3,85,4,8,19,10,87,97,115,104,105,110,103,116,111,110,49,16,48,14,6,3,85,4,7,19,7,82,101,100,109,111,110,100,49,30,48,28,6,3,85,4,10,19,21,77,105,99,114,111,115,111,102,116,32,67,111,114,112, - 111,114,97,116,105,111,110,49,50,48,48,6,3,85,4,3,19,41,77,105,99,114,111,115,111,102,116,32,82,111,111,116,32,67,101,114,116,105,102,105,99,97,116,101,32,65,117,116,104,111,114,105,116,121,32,50,48,49,48,48,30,23,13,50,49,48,57,51,48,49,56, - 50,50,50,53,90,23,13,51,48,48,57,51,48,49,56,51,50,50,53,90,48,124,49,11,48,9,6,3,85,4,6,19,2,85,83,49,19,48,17,6,3,85,4,8,19,10,87,97,115,104,105,110,103,116,111,110,49,16,48,14,6,3,85,4,7,19,7,82,101,100,109,111,110,100,49,30,48,28,6,3,85, - 4,10,19,21,77,105,99,114,111,115,111,102,116,32,67,111,114,112,111,114,97,116,105,111,110,49,38,48,36,6,3,85,4,3,19,29,77,105,99,114,111,115,111,102,116,32,84,105,109,101,45,83,116,97,109,112,32,80,67,65,32,50,48,49,48,48,130,2,34,48,13,6,9, - 42,134,72,134,247,13,1,1,1,5,0,3,130,2,15,0,48,130,2,10,2,130,2,1,0,228,225,166,76,231,180,114,33,11,121,162,203,215,36,121,189,14,213,130,211,253,238,156,7,7,210,169,108,78,117,200,202,53,87,246,1,127,108,74,224,226,189,185,62,23,96,51,255, - 92,79,199,102,247,149,83,113,90,226,126,74,90,254,184,54,103,133,70,35,12,181,141,19,207,119,50,192,16,24,232,96,125,106,82,131,68,183,166,142,70,107,7,20,243,197,118,245,134,80,220,193,68,200,113,92,81,49,55,160,10,56,110,141,237,215,15,216, - 38,83,124,57,97,2,122,196,170,253,114,105,175,29,171,172,246,54,190,53,38,100,218,152,59,186,26,123,51,173,128,91,126,140,16,28,157,82,254,182,232,98,37,220,106,15,207,93,244,254,142,83,207,214,236,133,86,77,239,221,188,141,164,227,145,143,178, - 57,44,81,156,233,112,105,13,202,54,45,112,142,49,200,53,40,189,227,180,135,36,195,224,201,143,126,181,84,143,220,250,5,85,152,109,104,59,154,70,189,237,164,174,122,41,55,172,203,235,131,69,231,70,110,202,50,213,192,134,48,92,79,44,226,98,178, - 205,185,226,141,136,228,150,172,1,74,187,190,113,169,23,91,103,96,222,248,146,145,30,29,61,253,32,207,115,125,65,154,70,117,205,196,95,52,221,18,137,214,253,165,32,125,126,252,217,158,69,223,182,114,47,219,125,95,128,186,219,170,126,54,236,54, - 76,246,43,110,168,18,81,232,191,5,3,163,209,115,166,77,55,116,148,28,52,130,15,240,16,242,183,71,24,237,167,232,153,124,63,76,219,175,94,194,243,213,216,115,61,67,78,193,51,57,76,142,2,188,66,104,46,16,234,132,81,70,226,209,189,106,24,90,97, - 1,115,202,103,162,94,215,40,118,2,226,51,24,114,215,167,32,240,194,250,18,10,215,99,111,12,201,54,100,139,91,160,166,131,33,93,95,48,116,145,148,148,216,185,80,249,11,137,97,243,54,6,53,24,132,71,219,220,27,209,253,178,212,28,197,107,246,92, - 82,81,93,18,219,37,186,175,80,5,122,108,197,17,29,114,239,141,249,82,196,133,23,147,192,60,21,219,26,55,199,8,21,24,63,120,171,69,182,245,30,135,94,218,143,158,22,114,105,198,174,123,183,183,62,106,226,46,173,2,3,1,0,1,163,130,1,221,48,130,1, - 217,48,18,6,9,43,6,1,4,1,130,55,21,1,4,5,2,3,1,0,1,48,35,6,9,43,6,1,4,1,130,55,21,2,4,22,4,20,42,167,82,254,100,196,154,190,130,145,60,70,53,41,207,16,255,47,4,238,48,29,6,3,85,29,14,4,22,4,20,159,167,21,93,0,94,98,93,131,244,229,210,101,167, - 27,83,53,25,233,114,48,92,6,3,85,29,32,4,85,48,83,48,81,6,12,43,6,1,4,1,130,55,76,131,125,1,1,48,65,48,63,6,8,43,6,1,5,5,7,2,1,22,51,104,116,116,112,58,47,47,119,119,119,46,109,105,99,114,111,115,111,102,116,46,99,111,109,47,112,107,105,111, - 112,115,47,68,111,99,115,47,82,101,112,111,115,105,116,111,114,121,46,104,116,109,48,19,6,3,85,29,37,4,12,48,10,6,8,43,6,1,5,5,7,3,8,48,25,6,9,43,6,1,4,1,130,55,20,2,4,12,30,10,0,83,0,117,0,98,0,67,0,65,48,11,6,3,85,29,15,4,4,3,2,1,134,48,15, - 6,3,85,29,19,1,1,255,4,5,48,3,1,1,255,48,31,6,3,85,29,35,4,24,48,22,128,20,213,246,86,203,143,232,162,92,98,104,209,61,148,144,91,215,206,154,24,196,48,86,6,3,85,29,31,4,79,48,77,48,75,160,73,160,71,134,69,104,116,116,112,58,47,47,99,114,108, - 46,109,105,99,114,111,115,111,102,116,46,99,111,109,47,112,107,105,47,99,114,108,47,112,114,111,100,117,99,116,115,47,77,105,99,82,111,111,67,101,114,65,117,116,95,50,48,49,48,45,48,54,45,50,51,46,99,114,108,48,90,6,8,43,6,1,5,5,7,1,1,4,78,48, - 76,48,74,6,8,43,6,1,5,5,7,48,2,134,62,104,116,116,112,58,47,47,119,119,119,46,109,105,99,114,111,115,111,102,116,46,99,111,109,47,112,107,105,47,99,101,114,116,115,47,77,105,99,82,111,111,67,101,114,65,117,116,95,50,48,49,48,45,48,54,45,50,51, - 46,99,114,116,48,13,6,9,42,134,72,134,247,13,1,1,11,5,0,3,130,2,1,0,157,85,125,252,42,173,225,44,31,103,1,49,36,91,225,158,114,75,252,169,111,234,92,20,182,62,78,71,100,120,177,6,147,151,61,49,51,181,57,215,194,113,54,63,218,100,108,124,208, - 117,57,109,187,15,49,228,194,143,251,108,209,161,148,24,34,238,233,102,103,58,83,77,221,152,186,182,30,120,216,54,46,156,169,130,86,0,3,176,5,190,137,232,105,224,186,9,238,123,223,106,111,190,41,203,110,216,63,72,117,1,217,24,222,109,130,12, - 245,109,35,84,228,120,83,117,36,87,185,221,159,243,142,61,198,243,104,223,101,246,164,86,170,247,149,182,40,85,39,208,36,189,64,160,191,25,182,18,18,17,93,61,39,224,64,150,56,172,247,249,41,137,195,188,23,176,84,133,66,179,252,12,158,139,25, - 137,231,240,11,106,129,194,129,25,66,25,82,117,138,54,194,29,195,97,115,46,44,107,123,110,63,44,9,120,20,233,145,178,169,91,223,73,163,116,12,188,236,145,128,210,61,230,74,62,102,59,79,187,134,250,50,26,217,150,244,143,246,145,1,246,206,198, - 116,253,246,76,114,111,16,171,117,48,197,52,176,122,216,80,254,10,88,221,64,60,199,84,109,157,99,116,72,44,177,78,71,45,193,20,4,113,191,100,249,36,190,115,109,202,142,9,189,179,1,87,73,84,100,217,115,215,127,30,91,68,1,142,90,25,145,107,13, - 159,164,40,220,103,25,40,36,186,56,75,154,110,251,33,84,107,106,69,17,71,169,241,183,174,200,232,137,94,79,157,210,208,76,118,181,87,84,9,177,105,1,68,126,124,161,97,108,115,254,10,187,236,65,102,61,105,253,203,193,65,73,126,126,147,190,203, - 248,59,228,183,21,191,180,206,62,165,49,81,132,188,191,2,193,130,162,123,23,29,21,137,141,112,254,231,181,208,40,26,137,11,143,54,218,186,76,249,155,255,10,233,52,248,36,53,103,43,224,13,184,230,140,153,214,225,34,234,240,39,66,61,37,148,230, - 116,116,91,106,209,158,62,237,126,160,49,51,125,188,203,233,123,191,56,112,68,209,144,241,200,171,58,138,58,8,98,127,217,112,99,83,77,141,238,130,109,165,5,16,193,113,6,106,16,180,29,85,51,88,179,161,112,102,242,161,130,2,212,48,130,2,61,2,1, - 1,48,130,1,0,161,129,216,164,129,213,48,129,210,49,11,48,9,6,3,85,4,6,19,2,85,83,49,19,48,17,6,3,85,4,8,19,10,87,97,115,104,105,110,103,116,111,110,49,16,48,14,6,3,85,4,7,19,7,82,101,100,109,111,110,100,49,30,48,28,6,3,85,4,10,19,21,77,105,99, - 114,111,115,111,102,116,32,67,111,114,112,111,114,97,116,105,111,110,49,45,48,43,6,3,85,4,11,19,36,77,105,99,114,111,115,111,102,116,32,73,114,101,108,97,110,100,32,79,112,101,114,97,116,105,111,110,115,32,76,105,109,105,116,101,100,49,38,48, - 36,6,3,85,4,11,19,29,84,104,97,108,101,115,32,84,83,83,32,69,83,78,58,48,56,52,50,45,52,66,69,54,45,67,50,57,65,49,37,48,35,6,3,85,4,3,19,28,77,105,99,114,111,115,111,102,116,32,84,105,109,101,45,83,116,97,109,112,32,83,101,114,118,105,99,101, - 162,35,10,1,1,48,7,6,5,43,14,3,2,26,3,21,0,66,162,31,33,137,99,29,70,205,161,141,63,194,56,87,70,127,236,72,13,160,129,131,48,129,128,164,126,48,124,49,11,48,9,6,3,85,4,6,19,2,85,83,49,19,48,17,6,3,85,4,8,19,10,87,97,115,104,105,110,103,116, - 111,110,49,16,48,14,6,3,85,4,7,19,7,82,101,100,109,111,110,100,49,30,48,28,6,3,85,4,10,19,21,77,105,99,114,111,115,111,102,116,32,67,111,114,112,111,114,97,116,105,111,110,49,38,48,36,6,3,85,4,3,19,29,77,105,99,114,111,115,111,102,116,32,84, - 105,109,101,45,83,116,97,109,112,32,80,67,65,32,50,48,49,48,48,13,6,9,42,134,72,134,247,13,1,1,5,5,0,2,5,0,233,126,208,210,48,34,24,15,50,48,50,52,48,50,50,48,49,53,49,56,52,50,90,24,15,50,48,50,52,48,50,50,49,49,53,49,56,52,50,90,48,116,48, - 58,6,10,43,6,1,4,1,132,89,10,4,1,49,44,48,42,48,10,2,5,0,233,126,208,210,2,1,0,48,7,2,1,0,2,2,14,60,48,7,2,1,0,2,2,17,101,48,10,2,5,0,233,128,34,82,2,1,0,48,54,6,10,43,6,1,4,1,132,89,10,4,2,49,40,48,38,48,12,6,10,43,6,1,4,1,132,89,10,3,2,160, - 10,48,8,2,1,0,2,3,7,161,32,161,10,48,8,2,1,0,2,3,1,134,160,48,13,6,9,42,134,72,134,247,13,1,1,5,5,0,3,129,129,0,13,119,1,74,32,183,115,183,177,212,159,226,166,206,102,15,230,160,237,166,209,131,154,144,89,6,85,34,208,14,63,64,199,214,232,87, - 19,13,115,0,4,58,46,29,146,249,9,6,60,156,147,69,82,190,131,80,231,192,49,138,216,143,176,77,203,241,241,65,234,219,89,246,174,100,231,188,173,153,187,94,29,228,59,115,171,192,186,75,210,92,215,225,183,42,177,5,32,107,255,101,124,243,42,176, - 136,36,68,12,33,193,103,164,159,212,16,213,247,109,131,123,89,229,176,253,58,51,128,141,49,130,4,13,48,130,4,9,2,1,1,48,129,147,48,124,49,11,48,9,6,3,85,4,6,19,2,85,83,49,19,48,17,6,3,85,4,8,19,10,87,97,115,104,105,110,103,116,111,110,49,16, - 48,14,6,3,85,4,7,19,7,82,101,100,109,111,110,100,49,30,48,28,6,3,85,4,10,19,21,77,105,99,114,111,115,111,102,116,32,67,111,114,112,111,114,97,116,105,111,110,49,38,48,36,6,3,85,4,3,19,29,77,105,99,114,111,115,111,102,116,32,84,105,109,101,45, - 83,116,97,109,112,32,80,67,65,32,50,48,49,48,2,19,51,0,0,1,218,142,213,201,90,0,209,17,177,0,1,0,0,1,218,48,13,6,9,96,134,72,1,101,3,4,2,1,5,0,160,130,1,74,48,26,6,9,42,134,72,134,247,13,1,9,3,49,13,6,11,42,134,72,134,247,13,1,9,16,1,4,48,47, - 6,9,42,134,72,134,247,13,1,9,4,49,34,4,32,207,44,139,82,75,169,73,178,48,239,49,40,193,71,167,180,97,211,139,21,69,220,244,82,129,108,244,81,94,135,196,205,48,129,250,6,11,42,134,72,134,247,13,1,9,16,2,47,49,129,234,48,129,231,48,129,228,48, - 129,189,4,32,34,165,163,105,98,192,239,158,164,222,247,144,227,212,45,61,211,109,8,230,88,226,110,181,191,157,210,2,59,24,61,198,48,129,152,48,129,128,164,126,48,124,49,11,48,9,6,3,85,4,6,19,2,85,83,49,19,48,17,6,3,85,4,8,19,10,87,97,115,104, - 105,110,103,116,111,110,49,16,48,14,6,3,85,4,7,19,7,82,101,100,109,111,110,100,49,30,48,28,6,3,85,4,10,19,21,77,105,99,114,111,115,111,102,116,32,67,111,114,112,111,114,97,116,105,111,110,49,38,48,36,6,3,85,4,3,19,29,77,105,99,114,111,115,111, - 102,116,32,84,105,109,101,45,83,116,97,109,112,32,80,67,65,32,50,48,49,48,2,19,51,0,0,1,218,142,213,201,90,0,209,17,177,0,1,0,0,1,218,48,34,4,32,41,12,185,146,237,226,148,210,117,25,61,203,117,145,100,56,96,90,49,48,67,196,18,51,193,104,99,146, - 16,165,15,178,48,13,6,9,42,134,72,134,247,13,1,1,11,5,0,4,130,2,0,44,193,55,168,168,81,156,190,152,81,37,226,185,235,126,111,156,12,10,54,188,9,44,94,21,236,249,212,129,150,53,26,248,202,27,158,251,78,45,125,128,193,165,218,226,7,22,63,24,136, - 195,197,40,169,136,107,174,67,11,19,86,65,180,141,142,195,132,21,103,32,219,170,69,224,46,120,170,56,200,117,205,202,3,117,190,77,223,89,110,32,188,239,40,189,75,70,14,169,95,112,216,179,120,173,188,104,229,234,164,233,139,251,155,26,240,245, - 175,103,146,51,138,214,182,184,67,206,199,155,29,145,192,60,7,225,188,4,251,252,190,248,90,199,124,121,159,57,155,2,179,73,16,25,179,156,121,24,37,219,155,127,61,53,219,13,11,57,126,37,164,121,253,143,26,133,145,138,115,53,209,205,58,18,215, - 7,211,34,64,233,181,143,166,200,163,143,7,152,95,133,69,172,79,133,36,90,99,16,190,245,130,18,192,162,141,207,198,121,254,243,220,148,195,55,78,81,207,115,133,199,110,156,66,231,232,188,44,184,207,131,87,237,84,81,185,180,39,1,242,132,116,250, - 147,198,36,12,119,135,50,144,186,203,24,10,48,49,85,148,2,158,168,211,59,33,179,247,174,163,90,37,219,220,61,43,255,176,243,41,131,253,96,43,6,16,86,22,12,188,140,157,205,255,88,116,247,9,218,131,15,212,112,158,226,200,16,137,254,2,65,68,185, - 197,65,203,191,42,247,41,227,51,234,201,12,127,33,178,145,164,23,103,87,8,98,250,252,155,234,198,95,101,117,6,200,200,239,11,151,245,168,99,150,189,190,40,167,237,150,135,119,201,82,138,62,249,146,51,254,124,153,168,71,60,19,142,191,173,249, - 88,71,64,10,81,134,113,83,166,81,119,88,159,108,39,116,99,213,176,248,44,118,84,191,31,68,123,194,188,120,110,185,197,35,123,197,244,33,84,251,136,78,247,247,149,3,128,41,252,207,26,41,180,255,199,108,200,30,26,11,234,19,253,226,120,190,245, - 89,11,70,47,103,181,177,201,17,79,39,144,248,95,107,120,69,191,242,59,2,131,115,88,201,236,84,208,233,131,79,162,232,9,235,222,167,57,172,180,44,244,175,134,135,108,3,167,14,24,207,9,229,27,104,117,55,87,6,240,0,0,0,0,0 - }; - #else - static constexpr unsigned char dllData[162392] = { - 77,90,120,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,120,0,0,0,14,31,186,14,0,180,9,205,33,184,1,76,205,33,84,104,105,115,32,112,114,111,103,114,97,109,32,99,97,110,110, - 111,116,32,98,101,32,114,117,110,32,105,110,32,68,79,83,32,109,111,100,101,46,36,0,0,80,69,0,0,100,134,10,0,88,207,211,101,0,0,0,0,0,0,0,0,240,0,34,32,11,2,14,0,0,80,1,0,0,252,0,0,0,0,0,0,48,78,0,0,0,16,0,0,0,0,0,128,1,0,0,0,0,16,0,0,0,2,0,0, - 5,0,2,0,0,0,0,0,5,0,2,0,0,0,0,0,0,208,2,0,0,4,0,0,96,172,2,0,3,0,96,65,0,0,16,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,16,0,0,0,113,243,1,0,48,1,0,0,161,244,1,0,40,0,0,0,0,176,2,0,136,5,0,0,0,64,2,0,12,21,0,0,0,82, - 2,0,88,40,0,0,0,192,2,0,172,6,0,0,12,235,1,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,152,231,1,0,40,0,0,0,192,97,1,0,64,1,0,0,0,0,0,0,0,0,0,0,136,247,1,0,184,2,0,0,232,241,1,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46,116,101,120,116,0,0, - 0,141,79,1,0,0,16,0,0,0,80,1,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,96,46,114,100,97,116,97,0,0,212,180,0,0,0,96,1,0,0,182,0,0,0,84,1,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,64,46,100,97,116,97,0,0,0,20,30,0,0,0,32,2,0,0,12,0,0,0,10,2,0,0,0,0,0,0, - 0,0,0,0,0,0,0,64,0,0,192,46,112,100,97,116,97,0,0,12,21,0,0,0,64,2,0,0,22,0,0,0,22,2,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,64,46,103,120,102,103,0,0,0,176,16,0,0,0,96,2,0,0,18,0,0,0,44,2,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,64,46,114,101,116,112,108, - 110,101,140,0,0,0,0,128,2,0,0,2,0,0,0,62,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46,116,108,115,0,0,0,0,9,0,0,0,0,144,2,0,0,2,0,0,0,64,2,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,192,95,82,68,65,84,65,0,0,92,1,0,0,0,160,2,0,0,2,0,0,0,66,2,0,0,0,0,0,0,0,0, - 0,0,0,0,0,64,0,0,64,46,114,115,114,99,0,0,0,136,5,0,0,0,176,2,0,0,6,0,0,0,68,2,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,64,46,114,101,108,111,99,0,0,172,6,0,0,0,192,2,0,0,8,0,0,0,74,2,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,86,72,131,236,64,72,139,5,28,16,2, - 0,72,49,224,72,137,68,36,56,72,139,65,8,15,16,64,240,15,41,68,36,32,72,131,121,32,0,117,102,72,137,206,76,141,73,32,72,137,81,40,76,137,65,48,72,141,21,87,0,0,0,72,141,76,36,32,73,137,240,255,21,180,26,2,0,133,192,116,35,15,183,240,129,206,0, - 0,7,128,133,192,15,78,240,72,139,76,36,56,72,49,225,232,117,180,0,0,137,240,72,131,196,64,94,195,76,139,70,8,72,139,78,32,69,15,183,8,186,2,0,0,0,255,21,126,26,2,0,49,246,235,208,185,5,0,0,0,205,41,86,72,131,236,64,76,139,156,36,128,0,0,0,77, - 133,219,116,47,76,139,84,36,112,131,250,1,117,43,65,15,182,192,141,112,1,132,192,184,0,1,0,0,15,69,198,65,137,3,77,137,75,16,77,137,83,24,73,139,67,40,72,133,192,117,19,72,131,196,64,94,195,133,210,117,237,65,199,3,0,0,0,0,235,228,72,139,116, - 36,120,77,139,91,48,76,137,92,36,48,72,137,116,36,40,76,137,84,36,32,255,21,41,224,1,0,235,205,86,87,72,131,236,88,72,137,208,68,139,148,36,144,0,0,0,76,139,156,36,152,0,0,0,72,139,21,255,14,2,0,72,49,226,72,137,84,36,80,15,182,48,193,230,24, - 72,141,84,36,64,137,50,15,183,112,1,137,114,4,72,139,112,3,72,137,114,8,72,141,112,11,72,139,121,8,73,137,59,72,139,121,8,15,183,63,65,137,123,8,65,199,67,12,2,0,0,0,73,137,115,16,15,183,64,11,65,137,67,24,65,199,67,28,1,0,0,0,199,68,36,60,170, - 170,170,170,72,141,5,170,216,1,0,72,141,53,99,217,1,0,41,198,137,116,36,60,72,139,73,32,76,137,92,36,40,68,137,84,36,32,255,21,105,25,2,0,137,198,72,139,76,36,80,72,49,225,232,34,179,0,0,137,240,72,131,196,88,95,94,195,195,86,87,83,72,131,236, - 80,76,137,198,72,139,5,79,14,2,0,72,49,224,72,137,68,36,72,72,141,5,114,201,1,0,72,137,68,36,32,72,141,5,180,201,1,0,72,137,68,36,40,72,141,5,246,201,1,0,72,137,68,36,48,72,141,5,56,202,1,0,72,137,68,36,56,72,141,5,122,202,1,0,72,137,68,36,64, - 132,210,116,38,72,141,61,184,202,1,0,72,139,76,36,72,72,49,225,232,171,178,0,0,72,137,241,72,137,250,72,131,196,80,91,95,94,233,69,40,0,0,72,99,193,72,139,124,196,32,72,137,249,232,253,121,0,0,72,137,195,72,141,80,42,72,137,241,232,144,39,0, - 0,72,141,21,19,203,1,0,65,184,42,0,0,0,72,137,241,232,67,40,0,0,72,139,76,36,72,72,49,225,232,88,178,0,0,72,137,241,72,137,250,73,137,216,72,131,196,80,91,95,94,233,1,41,0,0,86,87,72,131,236,56,72,137,206,72,141,21,93,203,1,0,232,186,40,0,0, - 72,141,21,79,200,1,0,72,137,241,232,171,40,0,0,72,137,241,232,185,41,0,0,72,137,193,255,21,150,229,1,0,131,248,255,116,112,72,137,241,232,163,41,0,0,72,137,198,72,199,68,36,48,0,0,0,0,199,68,36,40,128,0,0,0,199,68,36,32,3,0,0,0,72,137,193,186, - 33,0,16,0,65,184,7,0,0,0,69,49,201,255,21,134,228,1,0,72,131,248,255,116,13,72,137,193,255,21,103,228,1,0,176,1,235,36,72,141,13,92,204,1,0,72,139,61,37,230,1,0,255,215,72,137,241,255,21,34,230,1,0,72,141,13,43,203,1,0,255,215,49,192,72,131, - 196,56,95,94,195,65,86,86,87,83,72,131,236,40,72,137,214,72,137,207,186,4,1,0,0,72,137,241,232,138,38,0,0,72,137,241,232,196,40,0,0,72,137,195,72,137,241,232,3,41,0,0,72,137,249,72,137,194,65,137,216,255,21,242,228,1,0,137,195,65,137,198,72, - 137,241,232,157,40,0,0,76,57,240,117,60,255,21,210,228,1,0,131,248,122,117,49,186,0,16,0,0,72,137,241,232,62,38,0,0,72,137,241,232,120,40,0,0,72,137,195,72,137,241,232,183,40,0,0,72,137,249,72,137,194,65,137,216,255,21,166,228,1,0,137,195,133, - 219,116,30,137,223,72,137,241,232,78,40,0,0,72,57,248,118,15,72,137,241,72,137,250,232,80,39,0,0,49,192,235,21,255,21,116,228,1,0,137,193,15,183,193,13,0,0,7,128,133,201,15,78,193,72,131,196,40,91,95,94,65,94,195,65,86,86,87,83,72,131,236,72, - 72,137,214,72,137,207,72,139,5,245,11,2,0,72,49,224,72,137,68,36,64,186,4,1,0,0,72,137,241,232,174,37,0,0,72,137,241,72,137,250,232,57,38,0,0,72,137,241,232,39,40,0,0,72,137,195,72,137,241,232,216,39,0,0,72,131,248,3,114,53,15,183,67,2,102,131, - 248,58,117,27,102,131,123,4,92,117,36,15,183,3,131,224,223,131,192,191,102,131,248,26,115,21,233,205,0,0,0,102,131,248,92,117,10,102,131,59,92,15,132,189,0,0,0,72,184,170,170,170,170,170,170,170,170,72,141,92,36,32,72,137,67,16,15,40,5,37,198, - 1,0,15,41,3,72,137,217,232,194,36,0,0,49,201,72,137,218,232,128,254,255,255,133,192,15,136,204,0,0,0,72,141,92,36,32,72,137,217,232,89,39,0,0,73,137,198,72,137,217,232,146,39,0,0,72,137,241,72,137,194,77,137,240,232,192,37,0,0,72,137,217,232, - 124,39,0,0,72,137,193,102,186,92,0,232,86,87,0,0,72,133,192,15,132,130,0,0,0,72,137,195,76,141,116,36,32,76,137,241,232,87,39,0,0,72,41,195,72,131,195,2,72,209,251,76,137,241,232,69,39,0,0,72,137,241,72,137,194,73,137,216,232,115,37,0,0,72,137, - 241,72,137,250,232,22,38,0,0,76,137,241,232,60,36,0,0,72,137,241,232,55,253,255,255,49,219,132,192,117,81,72,141,13,199,200,1,0,72,139,61,222,227,1,0,255,215,72,137,241,232,254,38,0,0,72,137,193,255,21,211,227,1,0,72,141,13,220,200,1,0,255,215, - 187,2,0,7,128,235,32,187,5,64,0,128,235,15,137,195,72,141,13,97,200,1,0,255,21,165,227,1,0,72,141,76,36,32,232,221,35,0,0,72,139,76,36,64,72,49,225,232,22,175,0,0,137,216,72,131,196,72,91,95,94,65,94,195,65,87,65,86,86,87,85,83,72,131,236,88, - 72,137,214,72,137,203,72,139,5,57,10,2,0,72,49,224,72,137,68,36,80,72,141,13,116,200,1,0,232,90,1,0,0,73,137,199,72,141,13,125,200,1,0,232,75,1,0,0,73,137,198,72,141,13,130,200,1,0,232,60,1,0,0,189,50,0,7,128,77,133,255,116,124,77,133,246,116, - 119,72,137,199,72,133,192,116,111,72,141,84,36,76,199,2,0,0,0,0,72,137,217,76,137,248,255,21,225,218,1,0,133,192,116,112,137,197,72,184,170,170,170,170,170,170,170,170,76,141,124,36,48,73,137,71,16,15,40,5,113,196,1,0,65,15,41,7,76,137,249,232, - 13,35,0,0,137,234,76,137,249,232,167,37,0,0,132,192,117,80,255,21,233,225,1,0,15,183,232,129,205,0,0,7,128,133,192,15,78,232,72,141,76,36,48,232,243,34,0,0,72,139,76,36,80,72,49,225,232,44,174,0,0,137,232,72,131,196,88,91,93,95,94,65,94,65,95, - 195,255,21,175,225,1,0,15,183,232,129,205,0,0,7,128,133,192,15,78,232,235,206,72,141,76,36,48,232,159,37,0,0,139,84,36,76,72,137,217,65,137,232,73,137,193,76,137,240,255,21,55,218,1,0,133,192,116,140,72,141,92,36,40,72,199,3,0,0,0,0,76,141,116, - 36,36,65,199,6,0,0,0,0,72,141,76,36,48,232,99,37,0,0,72,141,21,136,199,1,0,72,137,193,73,137,216,77,137,241,72,137,248,255,21,248,217,1,0,133,192,15,132,73,255,255,255,72,139,84,36,40,72,133,210,15,132,59,255,255,255,72,137,241,232,54,35,0,0, - 49,237,233,64,255,255,255,86,72,131,236,32,72,137,206,139,5,69,38,2,0,139,13,131,20,2,0,101,72,139,20,37,88,0,0,0,72,139,12,202,59,129,4,0,0,0,127,35,72,139,13,27,38,2,0,72,133,201,116,15,72,137,242,72,131,196,32,94,72,255,37,255,224,1,0,49, - 192,72,131,196,32,94,195,72,141,13,0,38,2,0,232,251,40,0,0,131,61,244,37,2,0,255,117,200,72,141,13,227,199,1,0,49,210,65,184,0,8,0,0,255,21,109,225,1,0,72,133,192,117,21,72,141,13,15,200,1,0,49,210,65,184,0,8,0,0,255,21,83,225,1,0,72,137,5,180, - 37,2,0,72,141,13,181,37,2,0,232,24,41,0,0,235,132,86,72,131,236,64,72,139,5,26,8,2,0,72,49,224,72,137,68,36,56,72,199,68,36,48,0,0,0,0,72,133,201,116,28,72,139,1,72,139,0,72,141,21,207,198,1,0,76,141,68,36,48,255,21,244,216,1,0,133,192,116,55, - 49,246,72,139,76,36,48,72,133,201,116,22,72,199,68,36,48,0,0,0,0,72,139,1,72,139,64,16,255,21,206,216,1,0,72,139,76,36,56,72,49,225,232,113,172,0,0,137,240,72,131,196,64,94,195,72,139,76,36,48,72,133,201,116,191,72,141,116,36,44,199,6,0,0,0, - 0,72,139,1,72,139,64,24,72,137,242,255,21,148,216,1,0,131,62,1,64,15,148,198,133,192,117,153,235,153,65,86,86,87,83,72,129,236,152,0,0,0,15,41,180,36,128,0,0,0,72,137,214,72,137,207,72,139,5,94,7,2,0,72,49,224,72,137,68,36,120,72,187,170,170, - 170,170,170,170,170,170,72,141,76,36,96,72,137,89,16,15,40,53,244,193,1,0,15,41,49,232,148,32,0,0,72,141,76,36,64,72,137,89,16,15,41,49,232,131,32,0,0,72,141,76,36,32,72,137,89,16,15,41,49,232,114,32,0,0,72,139,15,72,133,201,116,49,102,131,57, - 0,116,43,72,141,84,36,96,232,239,250,255,255,133,192,116,4,137,199,235,54,72,141,76,36,96,232,66,35,0,0,72,141,84,36,64,72,137,193,232,137,252,255,255,235,23,72,141,84,36,96,76,141,68,36,64,76,141,76,36,32,72,137,249,232,191,0,0,0,137,199,133, - 192,116,71,49,192,72,137,6,72,141,76,36,32,232,31,32,0,0,72,141,76,36,64,232,21,32,0,0,72,141,76,36,96,232,11,32,0,0,72,139,76,36,120,72,49,225,232,68,171,0,0,137,248,15,40,180,36,128,0,0,0,72,129,196,152,0,0,0,91,95,94,65,94,195,72,141,76,36, - 32,232,133,34,0,0,132,192,117,58,72,141,21,72,197,1,0,72,141,124,36,64,72,137,249,232,151,33,0,0,72,141,92,36,32,72,137,217,232,92,34,0,0,73,137,198,72,137,217,232,149,34,0,0,72,137,249,72,137,194,77,137,240,232,163,33,0,0,72,141,124,36,64,72, - 137,249,232,54,34,0,0,72,137,195,72,137,249,232,111,34,0,0,72,137,193,72,137,218,232,106,34,0,0,49,255,233,73,255,255,255,65,87,65,86,65,85,65,84,86,87,85,83,72,129,236,232,0,0,0,15,41,180,36,208,0,0,0,76,137,76,36,88,76,137,199,72,137,84,36, - 80,73,137,206,72,139,5,209,5,2,0,72,49,224,72,137,132,36,200,0,0,0,15,40,53,119,192,1,0,76,141,124,36,96,49,237,235,27,76,137,233,232,32,31,0,0,76,137,249,232,24,31,0,0,255,197,131,253,5,15,132,90,3,0,0,65,189,4,0,0,0,65,41,237,65,131,126,24, - 1,68,15,69,237,65,128,126,29,0,116,10,65,139,70,32,68,15,163,232,115,210,65,128,126,28,0,15,149,192,69,133,237,65,15,148,196,65,32,196,72,141,5,61,197,1,0,72,137,132,36,160,0,0,0,72,141,5,140,197,1,0,72,137,132,36,168,0,0,0,72,141,5,215,197, - 1,0,72,137,132,36,176,0,0,0,72,141,5,32,198,1,0,72,137,132,36,184,0,0,0,72,141,5,111,198,1,0,72,137,132,36,192,0,0,0,68,137,235,72,139,180,220,160,0,0,0,72,184,170,170,170,170,170,170,170,170,72,137,68,36,112,15,41,116,36,96,76,137,249,232,84, - 30,0,0,68,137,233,68,137,226,77,137,248,232,134,246,255,255,76,137,249,232,56,33,0,0,72,139,76,36,80,72,137,76,36,32,72,137,193,68,137,226,69,49,192,73,137,249,232,234,13,0,0,132,192,15,133,142,2,0,0,76,137,249,232,13,33,0,0,72,139,76,36,80, - 72,137,76,36,32,72,137,193,68,137,226,65,176,1,73,137,249,232,191,13,0,0,132,192,15,133,99,2,0,0,15,41,180,36,144,0,0,0,139,5,26,34,2,0,139,13,72,16,2,0,101,72,139,20,37,88,0,0,0,72,139,12,202,59,129,4,0,0,0,15,143,247,3,0,0,72,131,61,235,33, - 2,0,0,65,189,0,0,0,0,15,132,161,254,255,255,139,5,241,33,2,0,139,13,15,16,2,0,101,72,139,20,37,88,0,0,0,72,139,12,202,59,129,4,0,0,0,15,143,12,4,0,0,72,131,61,194,33,2,0,0,15,132,110,254,255,255,76,137,172,36,128,0,0,0,72,139,5,157,33,2,0,72, - 141,140,36,128,0,0,0,72,137,76,36,56,68,137,108,36,48,76,137,108,36,40,68,137,108,36,32,49,201,72,137,242,69,49,192,69,49,201,255,21,232,212,1,0,133,192,120,83,76,137,172,36,160,0,0,0,72,139,5,109,33,2,0,72,139,140,36,128,0,0,0,76,137,108,36, - 32,49,210,69,49,192,76,141,140,36,160,0,0,0,255,21,181,212,1,0,76,139,164,36,128,0,0,0,255,21,31,220,1,0,72,137,193,49,210,77,137,224,255,21,73,220,1,0,76,137,172,36,128,0,0,0,139,5,59,33,2,0,139,13,73,15,2,0,101,72,139,20,37,88,0,0,0,72,139, - 12,202,59,129,4,0,0,0,15,143,148,3,0,0,72,139,5,13,33,2,0,72,133,192,76,141,172,36,160,0,0,0,15,132,158,253,255,255,199,132,36,140,0,0,0,170,170,170,170,199,132,36,136,0,0,0,0,0,0,0,185,1,0,24,0,72,141,148,36,136,0,0,0,69,49,192,76,141,140,36, - 140,0,0,0,255,21,32,212,1,0,131,248,122,15,133,97,253,255,255,131,188,36,136,0,0,0,0,15,132,83,253,255,255,72,184,170,170,170,170,170,170,170,170,72,137,132,36,176,0,0,0,15,41,180,36,160,0,0,0,76,137,233,232,63,28,0,0,139,148,36,136,0,0,0,76, - 137,233,232,212,30,0,0,132,192,15,132,18,253,255,255,76,139,37,113,32,2,0,76,137,233,232,19,31,0,0,185,1,0,24,0,72,141,148,36,136,0,0,0,73,137,192,76,141,140,36,140,0,0,0,76,137,224,255,21,160,211,1,0,133,192,15,133,218,252,255,255,76,137,233, - 232,226,30,0,0,131,188,36,140,0,0,0,0,116,48,73,137,196,73,131,196,46,69,49,237,73,139,76,36,234,72,137,242,232,135,98,0,0,133,192,15,132,206,0,0,0,65,255,197,73,131,196,80,68,59,172,36,140,0,0,0,114,218,72,141,140,36,160,0,0,0,233,142,252,255, - 255,72,141,13,38,193,1,0,255,21,100,219,1,0,190,2,0,7,128,235,110,72,139,76,36,88,72,133,201,116,88,72,141,5,202,191,1,0,72,137,132,36,160,0,0,0,72,141,5,189,191,1,0,72,137,132,36,168,0,0,0,72,141,5,184,191,1,0,72,137,132,36,176,0,0,0,72,141, - 5,177,191,1,0,72,137,132,36,184,0,0,0,72,141,5,176,191,1,0,72,137,132,36,192,0,0,0,72,139,148,220,160,0,0,0,232,47,28,0,0,72,141,76,36,96,232,51,27,0,0,49,246,72,139,140,36,200,0,0,0,72,49,225,232,103,166,0,0,137,240,15,40,180,36,208,0,0,0,72, - 129,196,232,0,0,0,91,93,95,94,65,92,65,93,65,94,65,95,195,65,15,183,52,36,137,180,36,144,0,0,0,65,15,183,68,36,254,137,132,36,148,0,0,0,65,15,183,68,36,252,137,132,36,152,0,0,0,65,15,183,68,36,250,137,132,36,156,0,0,0,73,139,84,36,218,76,139, - 100,36,80,76,137,225,232,176,27,0,0,76,141,172,36,160,0,0,0,76,137,233,232,174,26,0,0,72,141,140,36,144,0,0,0,76,137,226,232,62,12,0,0,65,137,196,72,133,255,15,132,166,0,0,0,69,132,228,15,132,157,0,0,0,186,15,0,0,0,72,137,249,232,216,26,0,0, - 72,184,170,170,170,170,170,170,170,170,72,137,132,36,174,0,0,0,15,41,180,36,160,0,0,0,65,184,11,0,0,0,137,241,76,137,234,65,185,10,0,0,0,232,150,95,0,0,133,192,15,133,36,251,255,255,68,136,100,36,79,72,137,249,76,137,234,232,38,27,0,0,65,188, - 3,0,0,0,65,184,11,0,0,0,137,241,76,137,234,65,185,10,0,0,0,232,98,95,0,0,133,192,15,133,240,250,255,255,72,137,249,72,141,21,160,194,1,0,232,211,27,0,0,72,137,249,76,137,234,232,200,27,0,0,65,255,204,117,195,68,138,100,36,79,69,132,228,15,132, - 195,250,255,255,233,63,254,255,255,72,141,13,253,29,2,0,232,232,32,0,0,131,61,241,29,2,0,255,15,133,240,251,255,255,72,141,13,120,194,1,0,255,21,174,216,1,0,72,137,193,72,141,21,76,194,1,0,255,21,174,216,1,0,72,137,5,191,29,2,0,72,141,13,192, - 29,2,0,232,19,33,0,0,233,187,251,255,255,72,141,13,191,29,2,0,232,154,32,0,0,131,61,179,29,2,0,255,15,133,219,251,255,255,72,141,13,42,194,1,0,255,21,96,216,1,0,72,137,193,72,141,21,56,194,1,0,255,21,96,216,1,0,72,137,5,129,29,2,0,72,141,13, - 130,29,2,0,232,197,32,0,0,233,166,251,255,255,72,141,13,129,29,2,0,232,76,32,0,0,131,61,117,29,2,0,255,15,133,83,252,255,255,72,141,13,220,193,1,0,255,21,18,216,1,0,72,137,193,72,141,21,255,193,1,0,255,21,18,216,1,0,72,137,5,67,29,2,0,72,141, - 13,68,29,2,0,232,119,32,0,0,233,30,252,255,255,86,87,72,131,236,56,72,139,5,117,255,1,0,72,49,224,72,137,68,36,48,72,133,201,15,132,203,0,0,0,72,137,214,128,122,30,0,116,10,128,126,29,0,15,133,184,0,0,0,72,141,124,36,40,72,199,7,0,0,0,0,72,139, - 1,72,139,0,72,141,21,136,190,1,0,73,137,248,255,21,55,208,1,0,72,139,15,133,192,120,116,72,133,201,15,132,134,0,0,0,128,126,30,0,117,47,72,141,84,36,36,199,2,0,0,0,0,72,139,1,72,139,64,40,255,21,9,208,1,0,133,192,120,14,131,124,36,36,1,117,7, - 199,70,24,1,0,0,0,72,139,76,36,40,128,126,29,0,117,48,72,141,84,36,36,199,2,170,170,170,170,72,139,1,72,139,64,24,255,21,212,207,1,0,133,192,120,15,139,68,36,36,133,192,116,7,198,70,29,1,137,70,32,72,139,76,36,40,72,133,201,116,22,72,199,68, - 36,40,0,0,0,0,72,139,1,72,139,64,16,255,21,161,207,1,0,72,139,76,36,48,72,49,225,232,68,163,0,0,144,72,131,196,56,95,94,195,204,204,204,204,204,204,204,204,204,204,204,204,65,87,65,86,65,84,86,87,83,72,129,236,8,1,0,0,15,41,180,36,240,0,0,0, - 72,139,5,89,254,1,0,72,49,224,72,137,132,36,232,0,0,0,77,133,201,15,132,231,1,0,0,76,137,203,77,137,198,15,40,53,240,184,1,0,76,141,188,36,152,0,0,0,65,15,17,119,24,49,192,65,137,71,32,65,137,71,24,65,137,71,27,73,137,15,73,137,87,8,77,137,71, - 16,76,137,193,232,228,245,255,255,65,136,71,28,72,184,170,170,170,170,170,170,170,170,72,141,180,36,128,0,0,0,72,137,70,16,15,41,54,15,41,118,240,15,41,118,224,15,41,118,208,76,141,100,36,80,76,137,225,232,52,23,0,0,72,141,124,36,104,72,137, - 249,232,39,23,0,0,72,137,241,232,31,23,0,0,76,137,249,76,137,226,232,111,13,0,0,76,137,241,76,137,250,232,39,254,255,255,72,141,21,122,61,1,0,185,72,0,0,0,232,36,29,0,0,73,137,198,72,133,192,15,132,53,1,0,0,72,139,132,36,184,0,0,0,72,137,132, - 36,224,0,0,0,15,16,132,36,152,0,0,0,15,16,140,36,168,0,0,0,15,41,140,36,208,0,0,0,15,41,132,36,192,0,0,0,65,199,70,12,1,0,0,0,72,141,5,213,183,1,0,73,137,6,72,139,13,187,26,2,0,72,133,201,116,13,72,139,1,72,139,64,8,255,21,57,206,1,0,72,141, - 5,130,183,1,0,73,137,6,15,40,132,36,192,0,0,0,15,40,140,36,208,0,0,0,65,15,17,70,16,65,15,17,78,32,72,139,132,36,224,0,0,0,73,137,70,48,73,137,94,56,72,139,3,72,139,64,8,72,137,217,255,21,245,205,1,0,65,199,70,64,1,0,0,0,72,139,132,36,184,0, - 0,0,72,141,76,36,32,72,137,65,32,15,16,132,36,152,0,0,0,15,16,140,36,168,0,0,0,15,41,73,16,15,41,1,76,137,242,232,146,0,0,0,137,195,73,139,6,72,139,64,16,76,137,241,255,21,171,205,1,0,72,137,241,232,13,22,0,0,72,137,249,232,5,22,0,0,72,141,76, - 36,80,232,251,21,0,0,72,139,140,36,232,0,0,0,72,49,225,232,49,161,0,0,137,216,15,40,180,36,240,0,0,0,72,129,196,8,1,0,0,91,95,94,65,92,65,94,65,95,195,187,3,64,0,128,235,206,15,16,132,36,152,0,0,0,15,16,140,36,168,0,0,0,72,141,76,36,32,15,41, - 1,15,41,73,16,72,139,132,36,184,0,0,0,72,137,65,32,76,137,242,232,4,0,0,0,137,195,235,128,65,87,65,86,86,87,85,83,72,129,236,232,0,0,0,15,41,180,36,208,0,0,0,73,137,214,72,137,207,72,139,5,255,251,1,0,72,49,224,72,137,132,36,200,0,0,0,72,184, - 170,170,170,170,170,170,170,170,72,141,76,36,48,72,137,65,16,15,40,53,146,182,1,0,15,41,49,232,50,21,0,0,15,182,95,28,72,139,15,72,133,201,116,29,102,131,57,0,116,23,128,251,1,187,2,0,0,0,131,219,0,72,141,84,36,48,232,160,239,255,255,235,21, - 1,219,72,141,84,36,48,72,137,249,69,49,192,69,49,201,232,145,245,255,255,137,197,137,198,133,192,117,46,72,139,119,8,76,139,127,16,72,141,76,36,48,232,212,23,0,0,76,137,116,36,40,76,137,124,36,32,72,137,193,178,1,65,137,216,73,137,241,232,24, - 25,0,0,137,198,133,246,120,52,72,141,76,36,48,232,194,20,0,0,72,139,140,36,200,0,0,0,72,49,225,232,248,159,0,0,137,240,15,40,180,36,208,0,0,0,72,129,196,232,0,0,0,91,93,95,94,65,94,65,95,195,128,127,28,0,117,198,133,237,64,15,148,199,133,219, - 15,148,195,139,5,215,24,2,0,139,13,213,6,2,0,101,72,139,20,37,88,0,0,0,72,139,12,202,59,129,4,0,0,0,15,143,16,1,0,0,72,139,13,169,24,2,0,72,133,201,116,138,72,141,21,109,189,1,0,255,21,79,211,1,0,72,133,192,15,132,116,255,255,255,72,141,13,135, - 4,2,0,49,210,69,49,192,232,149,234,255,255,133,192,15,136,91,255,255,255,131,61,110,4,2,0,3,114,9,246,5,122,4,2,0,64,117,39,72,139,13,124,4,2,0,199,5,82,4,2,0,0,0,0,0,72,199,5,103,4,2,0,0,0,0,0,255,21,105,5,2,0,233,34,255,255,255,72,184,255, - 255,255,255,255,191,255,255,72,35,5,67,4,2,0,117,198,72,141,68,36,88,72,199,0,0,0,0,1,72,141,76,36,87,136,25,72,141,84,36,86,64,136,58,76,141,68,36,80,65,137,48,76,141,76,36,96,65,15,41,113,16,65,15,41,49,73,137,65,80,73,199,65,88,8,0,0,0,73, - 137,73,64,184,1,0,0,0,73,137,65,72,73,137,81,48,73,137,65,56,77,137,65,32,73,199,65,40,4,0,0,0,76,137,76,36,40,199,68,36,32,6,0,0,0,72,141,13,183,3,2,0,72,141,21,17,196,1,0,69,49,192,69,49,201,232,198,234,255,255,233,61,255,255,255,72,141,13, - 161,23,2,0,232,92,26,0,0,131,61,149,23,2,0,255,15,133,215,254,255,255,72,141,13,54,188,1,0,49,210,65,184,0,8,0,0,255,21,202,210,1,0,72,137,5,107,23,2,0,72,141,13,108,23,2,0,232,143,26,0,0,233,170,254,255,255,204,204,73,137,208,49,210,233,6,0, - 0,0,204,204,204,204,204,204,65,87,65,86,65,84,86,87,83,72,129,236,184,0,0,0,15,41,180,36,160,0,0,0,72,139,5,105,249,1,0,72,49,224,72,137,132,36,152,0,0,0,77,133,192,15,132,236,0,0,0,76,137,198,72,137,215,15,40,53,0,180,1,0,72,141,92,36,112,15, - 17,115,24,199,67,32,0,0,0,0,15,87,192,15,17,67,8,72,199,67,23,0,0,0,0,72,137,11,72,137,83,16,72,137,209,232,244,240,255,255,136,67,28,72,184,170,170,170,170,170,170,170,170,76,141,124,36,80,73,137,71,16,65,15,41,55,65,15,41,119,240,65,15,41, - 119,224,65,15,41,119,208,76,141,116,36,32,76,137,241,232,68,18,0,0,76,141,100,36,56,76,137,225,232,55,18,0,0,76,137,249,232,47,18,0,0,72,137,217,76,137,242,232,127,8,0,0,72,137,249,72,137,218,232,55,249,255,255,72,137,217,72,137,242,232,47,241, - 255,255,137,198,76,137,249,232,22,18,0,0,76,137,225,232,14,18,0,0,76,137,241,232,6,18,0,0,72,139,140,36,152,0,0,0,72,49,225,232,60,157,0,0,137,240,15,40,180,36,160,0,0,0,72,129,196,184,0,0,0,91,95,94,65,92,65,94,65,95,195,190,3,64,0,128,235, - 206,204,204,204,204,204,204,204,204,204,204,86,87,83,72,131,236,80,72,139,5,74,248,1,0,72,49,224,72,137,68,36,72,77,133,192,116,99,191,87,0,7,128,72,133,201,116,94,72,137,211,72,133,210,116,86,76,137,198,15,40,5,217,178,1,0,72,141,84,36,48,15, - 41,2,15,41,68,36,32,232,99,0,0,0,191,87,0,7,128,132,192,116,49,72,141,84,36,32,72,137,217,232,77,0,0,0,132,192,116,32,49,192,139,76,132,32,57,76,132,48,119,50,114,41,72,255,192,72,131,248,4,117,235,49,192,235,40,191,3,64,0,128,72,139,76,36,72, - 72,49,225,232,128,156,0,0,137,248,72,131,196,80,91,95,94,195,184,255,255,255,255,235,5,184,1,0,0,0,137,6,49,255,235,215,65,87,65,86,86,87,85,83,72,131,236,56,72,137,214,72,137,207,72,139,5,147,247,1,0,72,49,224,72,137,68,36,48,72,141,92,36,40, - 72,199,3,0,0,0,0,64,181,1,69,49,255,69,49,246,235,38,72,131,192,2,72,137,199,235,8,66,199,4,190,0,0,0,0,73,131,255,3,73,141,71,1,65,15,147,198,73,137,199,72,131,248,4,116,60,64,246,197,1,116,221,72,137,249,72,137,218,65,184,10,0,0,0,232,103, - 102,0,0,66,137,4,190,72,139,68,36,40,72,57,248,116,11,72,133,192,116,6,102,131,56,46,116,170,49,237,77,133,255,117,180,72,57,248,117,175,65,128,230,1,72,139,76,36,48,72,49,225,232,185,155,0,0,68,137,240,72,131,196,56,91,93,95,94,65,94,65,95, - 195,204,204,204,204,204,204,204,204,204,73,137,201,49,201,49,210,69,49,192,233,97,248,255,255,65,87,65,86,65,84,86,87,85,83,72,129,236,96,2,0,0,76,137,206,68,137,199,137,211,73,137,207,72,139,5,182,246,1,0,72,49,224,72,137,132,36,88,2,0,0,76, - 141,116,36,80,65,184,8,2,0,0,76,137,241,178,170,232,78,63,0,0,199,68,36,60,8,2,0,0,72,184,170,170,170,170,170,170,170,170,72,141,84,36,48,72,137,2,64,15,182,199,72,199,193,2,0,0,128,72,41,193,72,137,84,36,32,49,237,76,137,250,69,49,192,65,185, - 25,2,2,0,255,21,93,1,2,0,133,192,116,36,72,139,140,36,88,2,0,0,72,49,225,232,249,154,0,0,137,232,72,129,196,96,2,0,0,91,93,95,94,65,92,65,94,65,95,195,72,139,188,36,192,2,0,0,72,141,5,206,183,1,0,72,141,21,223,176,1,0,132,219,72,15,69,208,72, - 139,76,36,48,76,141,100,36,60,76,137,100,36,40,76,137,116,36,32,69,49,192,69,49,201,255,21,1,1,2,0,65,137,198,133,192,117,117,131,124,36,60,3,114,110,76,141,124,36,80,72,137,249,76,137,250,232,55,16,0,0,69,49,246,132,219,116,87,199,68,36,60, - 8,2,0,0,72,139,76,36,48,76,137,100,36,40,76,137,124,36,32,72,141,21,114,183,1,0,69,49,192,69,49,201,255,21,178,0,2,0,65,137,198,133,192,117,38,131,124,36,60,3,114,31,72,141,21,111,179,1,0,72,137,249,232,201,16,0,0,72,141,84,36,80,72,137,249, - 232,188,16,0,0,69,49,246,72,139,76,36,48,255,21,98,0,2,0,49,237,69,133,246,15,133,14,255,255,255,131,124,36,60,3,15,130,3,255,255,255,72,137,249,232,166,17,0,0,72,137,193,102,186,92,0,232,128,65,0,0,72,133,192,116,34,72,137,195,72,131,195,2, - 15,40,5,229,175,1,0,72,141,84,36,64,15,41,2,72,137,217,232,113,253,255,255,132,192,117,7,49,237,233,193,254,255,255,72,133,246,116,11,72,137,241,72,137,218,232,102,15,0,0,72,141,76,36,64,72,137,250,232,7,0,0,0,137,197,233,157,254,255,255,86, - 87,72,131,236,40,72,137,214,49,192,72,141,21,172,182,1,0,68,139,4,16,68,57,4,1,119,12,114,24,72,131,192,4,72,131,248,16,117,234,72,137,241,72,131,196,40,95,94,233,45,231,255,255,72,141,13,145,182,1,0,72,139,61,218,205,1,0,255,215,72,137,241, - 232,250,16,0,0,72,137,193,255,21,207,205,1,0,72,141,13,216,178,1,0,255,215,49,192,72,131,196,40,95,94,195,204,204,204,204,204,204,204,204,204,204,204,204,204,233,205,1,0,0,204,204,204,204,204,204,204,204,204,204,204,139,65,12,61,255,255,255, - 127,116,12,141,80,1,240,15,177,81,12,117,236,235,5,186,255,255,255,127,137,208,195,204,204,86,72,131,236,32,139,65,12,61,255,255,255,127,116,66,141,112,255,240,15,177,113,12,117,236,133,246,117,57,72,133,201,116,18,72,139,1,72,139,64,32,186, - 1,0,0,0,255,21,28,197,1,0,72,139,13,133,17,2,0,49,246,72,133,201,116,20,72,139,1,72,139,64,16,255,21,1,197,1,0,235,5,190,254,255,255,127,137,240,72,131,196,32,94,195,204,204,86,87,72,131,236,104,72,137,206,72,139,5,216,243,1,0,72,49,224,72,137, - 68,36,96,133,210,120,125,72,199,68,36,40,0,0,0,0,77,133,192,116,106,73,139,0,72,139,0,72,141,21,81,182,1,0,72,141,124,36,40,76,137,193,73,137,248,255,21,168,196,1,0,137,194,76,139,7,72,139,78,56,72,139,1,72,139,64,24,255,21,146,196,1,0,72,139, - 76,36,40,72,133,201,116,22,72,199,68,36,40,0,0,0,0,72,139,1,72,139,64,16,255,21,114,196,1,0,72,139,76,36,96,72,49,225,232,21,152,0,0,49,192,72,131,196,104,95,94,195,69,49,192,235,180,139,70,64,133,192,15,142,120,255,255,255,255,200,137,70,64, - 72,139,70,48,72,141,76,36,48,72,137,65,32,15,16,70,16,15,16,78,32,15,41,73,16,15,41,1,72,137,242,232,248,246,255,255,133,192,121,173,72,139,78,56,72,139,17,76,139,74,24,137,194,69,49,192,76,137,200,255,21,6,196,1,0,235,146,204,204,204,204,86, - 87,72,131,236,40,137,215,72,137,206,72,141,5,62,173,1,0,72,137,1,72,139,73,56,72,133,201,116,21,72,199,70,56,0,0,0,0,72,139,1,72,139,64,16,255,21,205,195,1,0,199,70,12,1,0,0,192,133,255,116,8,72,137,241,232,82,18,0,0,72,137,240,72,131,196,40, - 95,94,195,15,11,72,131,236,40,73,199,0,0,0,0,0,68,139,26,68,139,82,4,68,139,74,8,139,82,12,69,133,219,117,22,69,133,210,117,17,65,129,249,192,0,0,0,117,8,129,250,0,0,0,70,116,40,184,2,64,0,128,65,129,251,137,51,138,78,117,44,65,129,250,216,201, - 210,75,117,35,65,129,249,182,181,18,79,117,26,129,250,238,108,193,77,117,18,73,137,8,72,139,1,72,139,64,8,255,21,66,195,1,0,49,192,72,131,196,40,195,204,204,204,86,87,83,72,131,236,48,72,137,206,72,139,5,31,242,1,0,72,49,224,72,137,68,36,40, - 139,5,233,15,2,0,139,13,215,253,1,0,101,72,139,20,37,88,0,0,0,72,139,12,202,59,129,4,0,0,0,15,143,255,0,0,0,72,131,61,186,15,2,0,0,116,66,186,131,0,0,0,72,137,241,232,169,11,0,0,72,137,241,232,227,13,0,0,72,141,124,36,32,137,7,72,139,29,149, - 15,2,0,72,137,241,232,23,14,0,0,72,137,249,72,137,194,72,137,216,255,21,182,194,1,0,133,192,15,132,151,0,0,0,139,5,136,15,2,0,139,13,102,253,1,0,101,72,139,20,37,88,0,0,0,72,139,12,202,59,129,4,0,0,0,15,143,220,0,0,0,72,139,5,90,15,2,0,72,133, - 192,116,95,72,141,76,36,32,72,199,1,0,0,0,0,255,21,107,194,1,0,137,199,133,192,120,48,72,139,84,36,32,72,137,241,232,180,11,0,0,132,192,117,20,255,21,150,201,1,0,15,183,248,129,207,0,0,7,128,133,192,15,78,248,72,139,76,36,32,255,21,85,252,1, - 0,72,139,76,36,40,72,49,225,232,216,149,0,0,137,248,72,131,196,48,91,95,94,195,191,144,4,7,128,235,226,139,84,36,32,255,202,72,137,241,232,35,12,0,0,49,201,132,192,191,255,255,0,128,15,69,249,235,198,72,141,13,196,14,2,0,232,111,17,0,0,131,61, - 184,14,2,0,255,15,133,232,254,255,255,72,141,13,165,179,1,0,255,21,53,201,1,0,72,141,21,118,179,1,0,72,137,193,255,21,53,201,1,0,72,137,5,134,14,2,0,72,141,13,135,14,2,0,232,154,17,0,0,233,179,254,255,255,72,141,13,134,14,2,0,232,33,17,0,0,131, - 61,122,14,2,0,255,15,133,11,255,255,255,72,141,13,101,181,1,0,49,255,49,210,65,184,0,8,0,0,255,21,141,201,1,0,72,133,192,116,19,72,141,21,97,181,1,0,72,137,193,255,21,216,200,1,0,72,137,199,72,137,61,54,14,2,0,72,141,13,55,14,2,0,232,58,17,0, - 0,233,196,254,255,255,65,87,65,86,65,84,86,87,83,72,129,236,200,0,0,0,15,41,188,36,176,0,0,0,15,41,180,36,160,0,0,0,72,137,215,72,137,206,72,139,5,24,240,1,0,72,49,224,72,137,132,36,152,0,0,0,49,219,72,137,92,36,64,15,87,246,15,17,116,36,48, - 72,137,92,36,32,198,68,36,40,1,72,141,13,9,179,1,0,72,141,21,210,178,1,0,73,137,240,73,137,249,232,195,1,0,0,72,131,199,24,76,141,70,8,72,137,92,36,64,15,17,116,36,48,72,137,92,36,32,198,68,36,40,0,72,141,13,56,179,1,0,72,141,21,19,179,1,0,73, - 137,249,232,145,1,0,0,73,190,170,170,170,170,170,170,170,170,72,141,188,36,128,0,0,0,76,137,119,16,15,40,61,68,170,1,0,15,41,63,72,137,249,232,225,8,0,0,72,141,13,246,180,1,0,72,137,250,232,34,12,0,0,132,192,116,23,72,141,21,17,181,1,0,72,141, - 140,36,128,0,0,0,232,124,11,0,0,136,70,28,72,141,188,36,128,0,0,0,72,137,249,232,185,8,0,0,69,49,255,72,141,92,36,120,76,137,59,76,137,119,16,15,41,63,72,141,188,36,128,0,0,0,72,137,249,232,133,8,0,0,72,141,70,29,72,141,78,32,76,141,102,24,76, - 137,124,36,64,72,137,68,36,56,72,137,76,36,48,68,136,124,36,40,76,137,100,36,32,72,141,13,205,178,1,0,72,141,21,166,178,1,0,73,137,216,73,137,249,232,207,0,0,0,72,141,124,36,112,76,137,63,72,141,92,36,80,76,137,115,16,15,41,59,72,137,217,232, - 43,8,0,0,76,141,118,30,76,137,116,36,64,15,17,116,36,48,68,136,124,36,40,76,137,100,36,32,72,141,13,216,178,1,0,72,141,21,173,178,1,0,73,137,248,73,137,217,232,130,0,0,0,68,56,126,30,117,52,76,137,116,36,64,15,87,192,15,17,68,36,48,76,137,100, - 36,32,198,68,36,40,0,72,141,13,14,179,1,0,72,141,21,213,178,1,0,76,141,68,36,112,76,141,76,36,80,232,72,0,0,0,72,141,76,36,80,232,200,7,0,0,72,141,140,36,128,0,0,0,232,187,7,0,0,72,139,140,36,152,0,0,0,72,49,225,232,241,146,0,0,15,40,180,36, - 160,0,0,0,15,40,188,36,176,0,0,0,72,129,196,200,0,0,0,91,95,94,65,92,65,94,65,95,195,65,87,65,86,65,85,65,84,86,87,85,83,72,131,236,88,77,137,206,76,137,198,73,137,215,76,139,164,36,224,0,0,0,72,139,188,36,216,0,0,0,72,139,156,36,208,0,0,0,64, - 138,172,36,200,0,0,0,76,139,172,36,192,0,0,0,72,139,5,208,237,1,0,72,49,224,72,137,68,36,80,64,132,237,116,7,198,5,180,247,1,0,1,76,137,242,232,100,10,0,0,132,192,116,78,76,137,241,232,2,10,0,0,72,137,6,72,133,219,116,16,76,137,241,232,178,9, - 0,0,132,192,15,132,88,1,0,0,77,133,237,116,55,72,139,14,72,133,201,116,29,232,246,79,0,0,49,201,131,248,1,15,148,193,65,137,77,0,77,133,228,116,25,65,198,4,36,1,235,18,49,201,235,236,64,132,237,117,40,128,61,78,247,1,0,0,117,31,72,139,76,36, - 80,72,49,225,232,255,145,0,0,144,72,131,196,88,91,93,95,94,65,92,65,93,65,94,65,95,195,76,137,100,36,64,76,141,100,36,72,73,199,4,36,0,0,0,0,76,137,100,36,32,72,141,21,55,178,1,0,72,199,193,1,0,0,128,69,49,192,65,185,25,0,2,0,255,21,9,248,1, - 0,137,197,73,139,12,36,255,21,237,247,1,0,133,237,116,78,72,199,68,36,72,0,0,0,0,76,137,100,36,32,72,141,21,252,177,1,0,72,199,193,2,0,0,128,69,49,192,65,185,25,0,2,0,255,21,206,247,1,0,137,197,72,139,76,36,72,255,21,177,247,1,0,133,237,15,148, - 5,168,246,1,0,76,139,100,36,64,15,133,81,255,255,255,235,12,198,5,148,246,1,0,1,76,139,100,36,64,76,137,100,36,56,72,137,124,36,48,72,137,92,36,40,76,137,108,36,32,72,199,193,2,0,0,128,76,137,250,73,137,240,77,137,241,232,12,1,0,0,132,192,15, - 133,18,255,255,255,76,137,100,36,56,72,137,124,36,48,72,137,92,36,40,76,137,108,36,32,72,199,193,1,0,0,128,76,137,250,73,137,240,77,137,241,232,219,0,0,0,233,228,254,255,255,72,139,54,72,139,76,36,80,72,49,225,232,224,144,0,0,72,137,217,72,137, - 242,73,137,248,72,131,196,88,91,93,95,94,65,92,65,93,65,94,65,95,233,0,0,0,0,65,87,65,86,86,87,85,83,72,131,236,40,76,137,198,72,133,210,15,132,128,0,0,0,72,137,211,72,137,207,189,1,0,0,0,235,32,73,141,78,2,232,84,78,0,0,186,1,0,0,0,137,193, - 211,226,131,248,5,15,67,213,9,23,102,65,199,6,0,0,72,137,217,102,186,44,0,232,249,55,0,0,72,133,192,116,30,73,137,198,73,137,199,73,41,223,73,209,255,73,255,199,72,137,217,232,201,87,0,0,73,57,199,115,205,235,177,102,131,59,0,116,30,72,137,217, - 232,0,78,0,0,186,1,0,0,0,137,193,211,226,185,1,0,0,0,131,248,5,15,67,209,9,23,198,6,1,72,131,196,40,91,93,95,94,65,94,65,95,195,65,87,65,86,65,84,86,87,85,83,72,129,236,192,0,0,0,15,41,180,36,176,0,0,0,76,137,206,76,137,199,73,137,214,72,137, - 203,72,139,5,54,235,1,0,72,49,224,72,137,132,36,168,0,0,0,73,188,170,170,170,170,170,170,170,170,76,141,124,36,112,77,137,103,16,15,40,53,201,165,1,0,65,15,41,55,76,137,249,232,101,4,0,0,76,137,249,232,205,248,255,255,72,141,76,36,80,76,137, - 97,16,15,41,49,232,76,4,0,0,76,141,188,36,144,0,0,0,77,137,103,16,65,15,41,55,76,137,249,232,52,4,0,0,49,201,76,137,250,232,242,221,255,255,133,192,15,136,166,1,0,0,72,141,140,36,144,0,0,0,232,15,7,0,0,72,137,193,102,186,92,0,232,233,54,0,0, - 72,133,192,117,13,72,141,140,36,144,0,0,0,232,241,6,0,0,72,131,192,2,72,141,76,36,80,72,137,194,232,234,4,0,0,72,141,140,36,144,0,0,0,232,235,3,0,0,72,199,68,36,72,0,0,0,0,77,133,246,15,132,90,1,0,0,102,65,131,62,0,15,132,79,1,0,0,76,141,188, - 36,144,0,0,0,77,137,103,16,65,15,41,55,76,137,241,232,112,86,0,0,72,141,80,42,76,137,249,232,226,3,0,0,72,141,21,81,175,1,0,76,137,249,232,109,5,0,0,76,137,249,76,137,242,232,98,5,0,0,76,137,249,232,112,6,0,0,72,141,76,36,72,72,137,76,36,32, - 49,237,72,137,217,72,137,194,69,49,192,65,185,1,0,0,0,255,21,253,244,1,0,137,195,76,137,249,232,93,3,0,0,133,219,15,133,216,0,0,0,76,139,164,36,56,1,0,0,76,139,188,36,48,1,0,0,76,139,180,36,40,1,0,0,72,139,156,36,32,1,0,0,72,141,76,36,112,232, - 19,6,0,0,72,139,76,36,72,76,137,100,36,56,76,137,124,36,48,76,137,116,36,40,72,137,92,36,32,72,137,194,73,137,248,73,137,241,232,199,0,0,0,64,181,1,132,192,117,98,72,141,76,36,80,232,219,5,0,0,72,139,76,36,72,76,137,100,36,56,76,137,124,36,48, - 76,137,116,36,40,72,137,92,36,32,72,137,194,73,137,248,73,137,241,232,143,0,0,0,132,192,117,45,72,139,76,36,72,76,137,100,36,56,76,137,124,36,48,76,137,116,36,40,72,137,92,36,32,72,141,21,174,174,1,0,73,137,248,73,137,241,232,96,0,0,0,137,197, - 72,139,76,36,72,255,21,22,244,1,0,235,17,72,141,76,36,80,232,30,4,0,0,233,135,254,255,255,49,237,72,141,76,36,80,232,115,2,0,0,72,141,76,36,112,232,105,2,0,0,72,139,140,36,168,0,0,0,72,49,225,232,159,141,0,0,137,232,15,40,180,36,176,0,0,0,72, - 129,196,192,0,0,0,91,93,95,94,65,92,65,94,65,95,195,65,87,65,86,65,85,65,84,86,87,85,83,72,131,236,72,76,137,207,76,137,198,72,137,211,73,137,206,76,139,172,36,200,0,0,0,76,139,188,36,192,0,0,0,76,139,164,36,184,0,0,0,72,139,172,36,176,0,0,0, - 72,139,5,136,232,1,0,72,49,224,72,137,68,36,64,77,133,228,116,86,76,137,241,72,137,218,73,137,240,73,137,249,232,16,1,0,0,132,192,116,31,72,137,249,232,120,4,0,0,132,192,117,19,72,139,22,76,137,225,77,137,248,232,66,252,255,255,64,182,1,235, - 2,49,246,72,139,76,36,64,72,49,225,232,240,140,0,0,137,240,72,131,196,72,91,93,95,94,65,92,65,93,65,94,65,95,195,72,133,237,15,132,148,0,0,0,72,141,68,36,60,199,0,0,0,0,0,72,141,76,36,56,199,1,4,0,0,0,72,137,76,36,48,72,137,68,36,40,72,199,68, - 36,32,0,0,0,0,76,137,241,49,210,73,137,216,65,185,16,0,0,0,255,21,223,242,1,0,133,192,116,43,76,137,241,72,137,218,73,137,240,73,137,249,232,112,0,0,0,132,192,15,132,123,255,255,255,72,139,14,72,133,201,116,46,232,45,74,0,0,131,248,1,235,5,131, - 124,36,60,1,15,148,192,15,182,192,137,69,0,64,182,1,77,133,237,15,132,81,255,255,255,65,198,69,0,1,233,71,255,255,255,49,192,235,224,72,139,76,36,64,72,49,225,232,51,140,0,0,76,137,241,72,137,218,73,137,240,73,137,249,72,131,196,72,91,93,95, - 94,65,92,65,93,65,94,65,95,233,0,0,0,0,65,87,65,86,86,87,83,72,129,236,80,2,0,0,76,137,207,76,137,198,72,137,211,73,137,206,72,139,5,57,231,1,0,72,49,224,72,137,132,36,72,2,0,0,76,141,124,36,64,65,184,8,2,0,0,76,137,249,49,210,232,209,47,0,0, - 72,141,68,36,60,199,0,8,2,0,0,72,137,68,36,48,76,137,124,36,40,72,199,68,36,32,0,0,0,0,76,137,241,49,210,73,137,216,65,185,2,0,0,0,255,21,231,241,1,0,137,195,133,192,117,24,72,141,84,36,64,72,137,249,232,56,1,0,0,72,137,249,232,38,3,0,0,72,137, - 6,133,219,15,148,195,72,139,140,36,72,2,0,0,72,49,225,232,108,139,0,0,137,216,72,129,196,80,2,0,0,91,95,94,65,94,65,95,195,204,204,204,72,137,200,15,87,192,15,17,1,72,199,65,16,0,0,0,0,195,86,72,131,236,32,72,199,1,0,0,0,0,72,139,65,16,72,133, - 192,116,29,72,137,206,102,199,0,0,0,72,139,73,16,72,133,201,116,12,232,19,6,0,0,15,87,192,15,17,70,8,72,131,196,32,94,195,86,72,131,236,32,72,137,206,15,87,192,15,17,1,72,199,65,16,0,0,0,0,232,9,0,0,0,72,137,240,72,131,196,32,94,195,65,87,65, - 86,86,87,83,72,131,236,32,64,182,1,72,57,81,8,115,115,72,137,215,72,131,250,255,116,104,72,137,203,72,137,248,72,255,192,72,141,68,63,2,72,199,193,255,255,255,255,72,15,73,200,232,159,5,0,0,72,133,192,116,69,73,137,198,72,139,3,72,133,192,116, - 46,76,139,123,16,76,141,4,69,2,0,0,0,76,137,241,76,137,250,232,216,138,0,0,77,133,255,116,8,76,137,249,232,115,5,0,0,76,137,115,16,72,137,123,8,235,14,102,65,199,6,0,0,76,139,123,16,235,221,49,246,137,240,72,131,196,32,91,95,94,65,94,65,95,195, - 204,86,87,72,131,236,40,72,137,214,72,137,207,72,133,210,116,28,72,137,241,232,175,81,0,0,73,137,192,72,137,249,72,137,242,72,131,196,40,95,94,233,5,0,0,0,69,49,192,235,234,65,86,86,87,83,72,131,236,40,76,137,199,73,137,214,72,137,203,72,199, - 1,0,0,0,0,72,139,65,16,72,133,192,116,5,102,199,0,0,0,64,182,1,72,133,255,116,39,72,137,217,72,137,250,232,254,254,255,255,132,192,116,22,72,139,75,16,76,141,4,63,76,137,242,232,36,138,0,0,72,57,123,8,115,14,49,246,137,240,72,131,196,40,91,95, - 94,65,94,195,72,137,59,72,139,67,16,72,133,192,116,232,102,199,4,120,0,0,235,224,72,199,1,0,0,0,0,72,139,65,16,72,133,192,116,5,102,199,0,0,0,195,72,139,65,8,72,57,208,114,18,72,137,17,72,139,73,16,72,133,201,116,6,102,199,4,81,0,0,72,57,208, - 15,147,192,195,86,87,72,131,236,40,72,137,214,72,137,207,72,133,210,116,28,72,137,241,232,207,80,0,0,73,137,192,72,137,249,72,137,242,72,131,196,40,95,94,233,5,0,0,0,69,49,192,235,234,65,87,65,86,86,87,83,72,131,236,32,64,182,1,72,133,210,116, - 64,77,137,198,72,137,207,72,139,25,76,1,195,114,48,73,137,215,72,137,249,72,137,218,232,41,254,255,255,132,192,116,30,72,139,15,72,1,201,72,3,79,16,77,1,246,76,137,250,77,137,240,232,71,137,0,0,72,57,95,8,115,16,49,246,137,240,72,131,196,32, - 91,95,94,65,94,65,95,195,72,137,31,72,139,71,16,72,133,192,116,230,102,199,4,88,0,0,235,222,204,72,139,1,76,57,192,118,9,72,139,73,16,102,66,137,20,65,76,57,192,15,151,192,195,72,209,234,72,255,194,233,191,253,255,255,204,72,139,65,8,195,204, - 72,139,1,195,72,131,57,0,15,148,192,195,72,131,236,40,72,133,210,116,34,102,131,58,0,116,28,72,139,65,16,72,133,192,116,15,72,137,209,72,137,194,232,175,79,0,0,133,192,235,8,49,192,235,7,72,131,57,0,15,148,192,72,131,196,40,195,204,72,139,65, - 16,195,204,86,87,83,72,131,236,32,72,133,201,72,141,61,61,161,1,0,72,15,69,249,72,141,28,85,2,0,0,0,72,57,211,118,33,72,137,217,255,21,149,238,1,0,72,133,192,116,19,72,137,198,72,137,193,72,137,250,73,137,216,232,103,136,0,0,235,2,49,246,72, - 137,240,72,131,196,32,91,95,94,195,86,87,83,72,131,236,32,72,137,214,72,137,207,49,210,69,49,192,255,21,112,187,1,0,133,192,116,16,137,195,137,194,72,137,241,232,246,252,255,255,132,192,117,10,49,192,72,131,196,32,91,95,94,195,72,137,241,232, - 108,255,255,255,72,137,249,72,137,194,65,137,216,255,21,59,187,1,0,137,194,72,137,241,72,131,196,32,91,95,94,233,20,254,255,255,204,204,65,87,65,86,65,85,65,84,86,87,85,83,72,131,236,40,76,137,206,68,137,195,72,137,215,73,137,206,76,141,60,18, - 76,137,201,76,137,250,232,147,252,255,255,136,68,36,39,72,137,241,76,137,250,232,216,253,255,255,72,133,255,116,84,72,255,207,49,237,76,141,37,85,168,1,0,69,15,182,44,46,132,219,73,137,239,76,15,69,255,79,141,4,63,68,137,232,193,232,4,66,15, - 190,20,32,72,137,241,232,108,254,255,255,78,141,4,125,1,0,0,0,65,131,229,15,67,15,190,84,37,0,72,137,241,232,82,254,255,255,72,255,197,72,131,199,255,114,184,138,68,36,39,72,131,196,40,91,93,95,94,65,92,65,93,65,94,65,95,195,65,86,86,87,85,83, - 72,131,236,96,76,137,206,68,137,197,65,137,214,72,137,203,72,139,5,43,226,1,0,72,49,224,72,137,68,36,88,255,21,61,187,1,0,72,133,192,116,121,72,137,199,72,141,21,207,167,1,0,72,137,193,255,21,125,186,1,0,72,133,192,15,132,247,0,0,0,72,139,140, - 36,184,0,0,0,76,139,140,36,176,0,0,0,72,137,76,36,32,68,137,241,137,234,73,137,240,255,21,225,178,1,0,137,198,72,141,21,138,168,1,0,72,137,249,255,21,63,186,1,0,72,133,192,116,9,72,137,249,255,21,153,185,1,0,72,139,76,36,88,72,49,225,232,100, - 134,0,0,137,240,72,131,196,96,91,93,95,94,65,94,195,255,21,233,185,1,0,15,183,240,129,206,0,0,7,128,133,192,15,78,240,76,141,116,36,84,65,137,54,72,184,170,170,170,170,170,170,170,170,72,141,124,36,48,72,137,71,16,15,40,5,33,156,1,0,15,41,7, - 72,137,249,232,190,250,255,255,186,4,0,0,0,76,137,241,65,176,1,73,137,249,232,91,254,255,255,72,141,13,14,168,1,0,76,139,53,117,186,1,0,65,255,214,72,137,249,232,140,253,255,255,72,137,193,65,255,214,72,141,13,133,168,1,0,65,255,214,72,137,217, - 65,255,214,72,141,13,203,167,1,0,65,255,214,72,137,249,232,124,250,255,255,233,76,255,255,255,255,21,79,185,1,0,15,183,240,129,206,0,0,7,128,133,192,15,78,240,76,141,116,36,84,65,137,54,72,184,170,170,170,170,170,170,170,170,72,141,92,36,48, - 72,137,67,16,15,40,5,135,155,1,0,15,41,3,72,137,217,232,36,250,255,255,186,4,0,0,0,76,137,241,65,176,1,73,137,217,232,193,253,255,255,72,141,13,152,166,1,0,76,139,53,219,185,1,0,65,255,214,72,137,217,232,242,252,255,255,72,137,193,65,255,214, - 72,141,13,65,167,1,0,65,255,214,72,137,217,232,242,249,255,255,233,164,254,255,255,184,1,0,0,0,195,204,72,131,236,40,232,139,2,0,0,235,2,51,192,72,131,196,40,195,204,204,233,7,76,0,0,204,204,204,233,115,2,0,0,204,204,204,233,235,255,255,255, - 204,204,204,72,137,92,36,8,87,72,131,236,32,186,160,15,0,0,72,141,13,122,235,1,0,255,21,252,184,1,0,72,141,13,13,32,1,0,255,21,135,184,1,0,72,139,216,72,133,192,117,21,72,141,13,64,32,1,0,255,21,114,184,1,0,72,139,216,72,133,192,116,127,72,141, - 21,75,32,1,0,72,139,203,255,21,106,184,1,0,72,141,21,91,32,1,0,72,139,203,72,139,248,255,21,87,184,1,0,72,133,255,116,21,72,133,192,116,16,72,137,61,62,235,1,0,72,137,5,63,235,1,0,235,30,69,51,201,69,51,192,51,201,65,141,81,1,255,21,27,183,1, - 0,72,137,5,236,234,1,0,72,133,192,116,36,51,201,232,192,3,0,0,132,192,116,25,72,141,13,141,1,0,0,232,236,1,0,0,72,139,92,36,48,51,192,72,131,196,32,95,195,185,7,0,0,0,232,93,5,0,0,204,64,83,72,131,236,32,72,139,217,72,141,13,176,234,1,0,255, - 21,234,182,1,0,131,59,0,117,17,131,11,255,235,52,185,100,0,0,0,232,158,0,0,0,235,234,131,59,255,116,239,101,72,139,4,37,88,0,0,0,139,13,4,235,1,0,65,184,4,0,0,0,72,139,20,200,139,5,0,223,1,0,65,137,4,16,72,141,13,101,234,1,0,72,131,196,32,91, - 72,255,37,25,184,1,0,204,64,83,72,131,236,32,72,139,217,72,141,13,72,234,1,0,255,21,130,182,1,0,139,5,204,222,1,0,72,141,13,53,234,1,0,139,21,179,234,1,0,255,192,137,5,183,222,1,0,137,3,101,72,139,4,37,88,0,0,0,65,185,4,0,0,0,76,139,4,208,139, - 5,156,222,1,0,67,137,4,1,255,21,194,183,1,0,72,131,196,32,91,233,100,0,0,0,64,83,72,131,236,32,72,139,5,19,234,1,0,139,217,72,133,192,116,29,68,139,193,72,141,21,218,233,1,0,72,141,13,195,233,1,0,72,131,196,32,91,72,255,37,135,175,1,0,72,141, - 13,192,233,1,0,255,21,122,183,1,0,72,139,13,171,233,1,0,69,51,192,139,211,255,21,80,184,1,0,72,141,13,161,233,1,0,72,131,196,32,91,72,255,37,213,181,1,0,204,72,131,236,40,72,139,5,185,233,1,0,72,133,192,116,18,72,141,13,109,233,1,0,72,131,196, - 40,72,255,37,50,175,1,0,72,139,13,99,233,1,0,255,21,165,183,1,0,72,139,13,86,233,1,0,72,131,196,40,72,255,37,91,183,1,0,204,204,204,72,131,236,40,72,141,13,69,233,1,0,255,21,111,181,1,0,72,139,13,48,233,1,0,72,133,201,116,6,255,21,69,181,1,0, - 72,131,196,40,195,64,83,72,131,236,32,72,139,217,235,15,72,139,203,232,217,44,0,0,133,192,116,19,72,139,203,232,129,73,0,0,72,133,192,116,231,72,131,196,32,91,195,72,131,251,255,116,6,232,67,6,0,0,204,232,93,6,0,0,204,72,131,236,40,232,15,0, - 0,0,72,247,216,27,192,247,216,255,200,72,131,196,40,195,204,64,83,72,131,236,32,72,131,61,22,233,1,0,255,72,139,217,117,7,232,36,52,0,0,235,15,72,139,211,72,141,13,0,233,1,0,232,135,51,0,0,51,210,133,192,72,15,68,211,72,139,194,72,131,196,32, - 91,195,204,204,72,131,236,24,76,139,193,184,77,90,0,0,102,57,5,21,189,255,255,117,120,72,99,13,72,189,255,255,72,141,21,5,189,255,255,72,3,202,129,57,80,69,0,0,117,95,184,11,2,0,0,102,57,65,24,117,84,76,43,194,15,183,81,20,72,131,194,24,72,3, - 209,15,183,65,6,72,141,12,128,76,141,12,202,72,137,20,36,73,59,209,116,24,139,74,12,76,59,193,114,10,139,66,8,3,193,76,59,192,114,8,72,131,194,40,235,223,51,210,72,133,210,117,4,50,192,235,20,131,122,36,0,125,4,50,192,235,10,176,1,235,6,50,192, - 235,2,50,192,72,131,196,24,195,72,131,236,40,232,59,7,0,0,133,192,116,33,101,72,139,4,37,48,0,0,0,72,139,72,8,235,5,72,59,200,116,20,51,192,240,72,15,177,13,20,232,1,0,117,238,50,192,72,131,196,40,195,176,1,235,247,204,204,204,64,83,72,131,236, - 32,138,217,232,251,6,0,0,51,210,133,192,116,11,132,219,117,7,72,135,21,230,231,1,0,72,131,196,32,91,195,64,83,72,131,236,32,15,182,5,219,231,1,0,133,201,187,1,0,0,0,15,68,195,136,5,203,231,1,0,232,14,5,0,0,232,1,36,0,0,132,192,117,4,50,192,235, - 20,232,176,42,0,0,132,192,117,9,51,201,232,17,36,0,0,235,234,138,195,72,131,196,32,91,195,204,204,204,64,83,72,131,236,32,128,61,143,231,1,0,0,138,217,116,4,132,210,117,12,232,146,42,0,0,138,203,232,227,35,0,0,176,1,72,131,196,32,91,195,204, - 204,204,64,83,72,131,236,32,128,61,100,231,1,0,0,139,217,117,103,131,249,1,119,106,232,81,6,0,0,133,192,116,40,133,219,117,36,72,141,13,78,231,1,0,232,173,49,0,0,133,192,117,16,72,141,13,86,231,1,0,232,157,49,0,0,133,192,116,46,50,192,235,51, - 102,15,111,5,41,28,1,0,72,131,200,255,243,15,127,5,29,231,1,0,72,137,5,38,231,1,0,243,15,127,5,38,231,1,0,72,137,5,47,231,1,0,198,5,249,230,1,0,1,176,1,72,131,196,32,91,195,185,5,0,0,0,232,58,1,0,0,204,204,72,137,92,36,8,72,137,108,36,16,72, - 137,116,36,24,87,72,131,236,32,73,139,249,73,139,240,139,218,72,139,233,232,188,5,0,0,133,192,117,22,131,251,1,117,17,76,139,198,51,210,72,139,205,72,139,199,255,21,30,172,1,0,72,139,84,36,88,139,76,36,80,72,139,92,36,48,72,139,108,36,56,72, - 139,116,36,64,72,131,196,32,95,233,24,56,0,0,72,131,236,40,51,201,232,9,255,255,255,132,192,15,149,192,72,131,196,40,195,204,204,204,72,131,236,40,232,95,5,0,0,133,192,116,7,232,162,3,0,0,235,25,232,71,5,0,0,139,200,232,8,45,0,0,133,192,116, - 4,50,192,235,7,232,183,52,0,0,176,1,72,131,196,40,195,72,131,236,40,232,43,5,0,0,133,192,116,16,72,141,13,44,230,1,0,72,131,196,40,233,247,48,0,0,232,18,42,0,0,133,192,117,5,232,29,42,0,0,72,131,196,40,195,72,131,236,40,51,201,232,69,41,0,0, - 72,131,196,40,233,120,34,0,0,72,131,236,40,232,127,34,0,0,132,192,117,4,50,192,235,18,232,54,41,0,0,132,192,117,7,232,125,34,0,0,235,236,176,1,72,131,196,40,195,72,131,236,40,232,47,41,0,0,232,102,34,0,0,176,1,72,131,196,40,195,204,204,204,131, - 37,229,229,1,0,0,195,72,137,92,36,8,85,72,141,172,36,64,251,255,255,72,129,236,192,5,0,0,139,217,185,23,0,0,0,255,21,234,178,1,0,133,192,116,4,139,203,205,41,185,3,0,0,0,232,196,255,255,255,51,210,72,141,77,240,65,184,208,4,0,0,232,143,34,0, - 0,72,141,77,240,255,21,37,179,1,0,72,139,157,232,0,0,0,72,141,149,216,4,0,0,72,139,203,69,51,192,255,21,19,179,1,0,72,133,192,116,60,72,131,100,36,56,0,72,141,141,224,4,0,0,72,139,149,216,4,0,0,76,139,200,72,137,76,36,48,76,139,195,72,141,141, - 232,4,0,0,72,137,76,36,40,72,141,77,240,72,137,76,36,32,51,201,255,21,242,178,1,0,72,139,133,200,4,0,0,72,141,76,36,80,72,137,133,232,0,0,0,51,210,72,141,133,200,4,0,0,65,184,152,0,0,0,72,131,192,8,72,137,133,136,0,0,0,232,248,33,0,0,72,139, - 133,200,4,0,0,72,137,68,36,96,199,68,36,80,21,0,0,64,199,68,36,84,1,0,0,0,255,21,6,178,1,0,131,248,1,72,141,68,36,80,72,137,68,36,64,72,141,69,240,15,148,195,72,137,68,36,72,51,201,255,21,165,178,1,0,72,141,76,36,64,255,21,202,178,1,0,133,192, - 117,12,132,219,117,8,141,72,3,232,190,254,255,255,72,139,156,36,208,5,0,0,72,129,196,192,5,0,0,93,195,204,64,83,72,131,236,32,72,139,217,72,139,194,72,141,13,109,25,1,0,15,87,192,72,137,11,72,141,83,8,72,141,72,8,15,17,2,232,107,31,0,0,72,139, - 195,72,131,196,32,91,195,204,204,204,204,204,204,72,131,121,8,0,72,141,5,76,25,1,0,72,15,69,65,8,195,204,204,204,204,204,204,204,204,204,204,204,204,204,204,72,137,92,36,8,87,72,131,236,32,72,141,5,23,25,1,0,72,139,249,72,137,1,139,218,72,131, - 193,8,232,170,31,0,0,246,195,1,116,13,186,24,0,0,0,72,139,207,232,244,247,255,255,72,139,92,36,48,72,139,199,72,131,196,32,95,195,204,204,72,131,97,16,0,72,141,5,24,25,1,0,72,137,65,8,72,141,5,253,24,1,0,72,137,1,72,139,193,195,204,204,72,141, - 5,189,24,1,0,72,137,1,72,131,193,8,233,85,31,0,0,204,64,83,72,131,236,32,72,139,217,72,139,194,72,141,13,157,24,1,0,15,87,192,72,137,11,72,141,83,8,72,141,72,8,15,17,2,232,155,30,0,0,72,141,5,176,24,1,0,72,137,3,72,139,195,72,131,196,32,91,195, - 72,131,97,16,0,72,141,5,208,24,1,0,72,137,65,8,72,141,5,181,24,1,0,72,137,1,72,139,193,195,204,204,64,83,72,131,236,32,72,139,217,72,139,194,72,141,13,65,24,1,0,15,87,192,72,137,11,72,141,83,8,72,141,72,8,15,17,2,232,63,30,0,0,72,141,5,124,24, - 1,0,72,137,3,72,139,195,72,131,196,32,91,195,72,131,236,72,72,141,76,36,32,232,38,255,255,255,72,141,21,179,202,1,0,72,141,76,36,32,232,129,13,0,0,204,72,131,236,72,72,141,76,36,32,232,118,255,255,255,72,141,21,27,203,1,0,72,141,76,36,32,232, - 97,13,0,0,204,72,137,92,36,16,72,137,116,36,24,87,72,131,236,16,51,192,51,201,15,162,68,139,193,69,51,219,68,139,210,65,129,240,110,116,101,108,65,129,242,105,110,101,73,68,139,203,139,240,51,201,65,141,67,1,69,11,208,15,162,65,129,241,71,101, - 110,117,137,4,36,69,11,209,137,92,36,4,139,249,137,76,36,8,137,84,36,12,117,91,72,131,13,183,214,1,0,255,37,240,63,255,15,72,199,5,159,214,1,0,0,128,0,0,61,192,6,1,0,116,40,61,96,6,2,0,116,33,61,112,6,2,0,116,26,5,176,249,252,255,131,248,32, - 119,36,72,185,1,0,1,0,1,0,0,0,72,15,163,193,115,20,68,139,5,81,226,1,0,65,131,200,1,68,137,5,70,226,1,0,235,7,68,139,5,61,226,1,0,184,7,0,0,0,68,141,72,251,59,240,124,38,51,201,15,162,137,4,36,68,139,219,137,92,36,4,137,76,36,8,137,84,36,12, - 15,186,227,9,115,10,69,11,193,68,137,5,10,226,1,0,199,5,16,214,1,0,1,0,0,0,68,137,13,13,214,1,0,15,186,231,20,15,131,145,0,0,0,68,137,13,248,213,1,0,187,6,0,0,0,137,29,241,213,1,0,15,186,231,27,115,121,15,186,231,28,115,115,51,201,15,1,208,72, - 193,226,32,72,11,208,72,137,84,36,32,72,139,68,36,32,34,195,58,195,117,87,139,5,195,213,1,0,131,200,8,199,5,178,213,1,0,3,0,0,0,137,5,176,213,1,0,65,246,195,32,116,56,131,200,32,199,5,153,213,1,0,5,0,0,0,137,5,151,213,1,0,184,0,0,3,208,68,35, - 216,68,59,216,117,24,72,139,68,36,32,36,224,60,224,117,13,131,13,120,213,1,0,64,137,29,110,213,1,0,72,139,92,36,40,51,192,72,139,116,36,48,72,131,196,16,95,195,184,1,0,0,0,195,204,204,51,192,57,5,64,225,1,0,15,149,192,195,194,0,0,204,204,204, - 204,204,204,204,204,204,204,204,204,204,64,83,72,131,236,32,72,141,5,131,22,1,0,72,139,217,72,137,1,246,194,1,116,10,186,24,0,0,0,232,230,244,255,255,72,139,195,72,131,196,32,91,195,204,72,137,92,36,8,72,137,116,36,16,72,137,124,36,32,65,86, - 72,131,236,32,72,139,242,76,139,241,51,201,232,178,248,255,255,132,192,15,132,200,0,0,0,232,69,248,255,255,138,216,136,68,36,64,64,183,1,131,61,109,224,1,0,0,15,133,197,0,0,0,199,5,93,224,1,0,1,0,0,0,232,228,249,255,255,132,192,116,79,232,143, - 10,0,0,232,58,10,0,0,232,81,10,0,0,72,141,21,46,166,1,0,72,141,13,255,165,1,0,232,142,49,0,0,133,192,117,41,232,205,249,255,255,132,192,116,32,72,141,21,222,165,1,0,72,141,13,207,165,1,0,232,42,49,0,0,199,5,8,224,1,0,2,0,0,0,64,50,255,138,203, - 232,2,248,255,255,64,132,255,117,63,232,44,10,0,0,72,139,216,72,131,56,0,116,36,72,139,200,232,19,247,255,255,132,192,116,24,76,139,198,186,2,0,0,0,73,139,206,72,139,3,76,139,13,82,165,1,0,65,255,209,255,5,25,224,1,0,184,1,0,0,0,235,2,51,192, - 72,139,92,36,48,72,139,116,36,56,72,139,124,36,72,72,131,196,32,65,94,195,185,7,0,0,0,232,252,249,255,255,144,204,204,204,72,137,92,36,8,87,72,131,236,48,64,138,249,139,5,217,223,1,0,133,192,127,13,51,192,72,139,92,36,64,72,131,196,48,95,195, - 255,200,137,5,192,223,1,0,232,43,247,255,255,138,216,136,68,36,32,131,61,86,223,1,0,2,117,55,232,39,249,255,255,232,74,9,0,0,232,193,9,0,0,131,37,62,223,1,0,0,138,203,232,59,247,255,255,51,210,64,138,207,232,161,247,255,255,246,216,27,219,131, - 227,1,232,41,249,255,255,139,195,235,162,185,7,0,0,0,232,119,249,255,255,144,144,204,204,204,204,204,204,204,204,204,72,131,236,40,133,210,116,57,131,234,1,116,40,131,234,1,116,22,131,250,1,116,10,184,1,0,0,0,72,131,196,40,195,232,38,249,255, - 255,235,5,232,247,248,255,255,15,182,192,72,131,196,40,195,73,139,208,72,131,196,40,233,27,254,255,255,77,133,192,15,149,193,72,131,196,40,233,36,255,255,255,72,139,196,72,137,88,32,76,137,64,24,137,80,16,72,137,72,8,86,87,65,86,72,131,236,64, - 73,139,240,139,250,76,139,241,133,210,117,15,57,21,228,222,1,0,127,7,51,192,233,238,0,0,0,141,66,255,131,248,1,119,69,72,139,5,52,20,1,0,72,133,192,117,10,199,68,36,48,1,0,0,0,235,20,255,21,231,163,1,0,139,216,137,68,36,48,133,192,15,132,178, - 0,0,0,76,139,198,139,215,73,139,206,232,60,255,255,255,139,216,137,68,36,48,133,192,15,132,151,0,0,0,76,139,198,139,215,73,139,206,232,46,242,255,255,139,216,137,68,36,48,131,255,1,117,54,133,192,117,50,76,139,198,51,210,73,139,206,232,18,242, - 255,255,72,133,246,15,149,193,232,110,254,255,255,72,139,5,187,19,1,0,72,133,192,116,14,76,139,198,51,210,73,139,206,255,21,112,163,1,0,133,255,116,5,131,255,3,117,64,76,139,198,139,215,73,139,206,232,202,254,255,255,139,216,137,68,36,48,133, - 192,116,41,72,139,5,129,19,1,0,72,133,192,117,9,141,88,1,137,92,36,48,235,20,76,139,198,139,215,73,139,206,255,21,45,163,1,0,139,216,137,68,36,48,235,6,51,219,137,92,36,48,139,195,72,139,92,36,120,72,131,196,64,65,94,95,94,195,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,72,137,92,36,8,72,137,116,36,16,87,72,131,236,32,73,139,248,139,218,72,139,241,131,250,1,117,5,232,155,6,0,0,76,139,199,139,211,72,139,206,72,139,92,36,48,72,139,116,36,56,72,131,196,32,95,233,131, - 254,255,255,204,204,204,72,137,92,36,8,87,72,131,236,32,72,139,5,135,221,1,0,191,1,0,0,0,72,59,199,116,118,72,133,192,117,108,72,141,13,217,18,1,0,255,21,243,169,1,0,72,139,216,72,133,192,117,5,72,139,223,235,56,72,141,21,223,18,1,0,72,139,203, - 255,21,230,169,1,0,72,133,192,116,230,72,141,21,226,18,1,0,72,137,5,67,221,1,0,72,139,203,255,21,202,169,1,0,72,133,192,116,202,72,137,5,54,221,1,0,51,192,240,72,15,177,29,27,221,1,0,117,5,72,59,223,116,13,72,59,199,15,149,192,235,7,64,138,199, - 235,2,50,192,72,139,92,36,48,72,131,196,32,95,195,204,204,72,137,92,36,8,72,137,116,36,16,72,137,124,36,24,76,99,5,22,177,255,255,72,141,53,211,176,255,255,76,3,198,72,139,218,72,139,249,65,131,184,132,0,0,0,13,118,72,69,139,144,240,0,0,0,69, - 51,201,69,133,210,116,57,65,15,183,72,20,69,15,183,88,6,72,131,193,24,69,139,84,50,12,73,3,200,69,133,219,116,30,139,65,12,68,59,208,114,10,139,81,8,3,194,68,59,208,114,30,65,255,193,72,131,193,40,69,59,203,114,226,51,192,72,139,92,36,8,72,139, - 116,36,16,72,139,124,36,24,195,137,23,139,65,36,137,3,139,65,12,72,3,198,235,225,204,204,204,72,137,92,36,8,87,72,129,236,128,0,0,0,72,139,250,65,184,48,0,0,0,72,141,84,36,32,72,139,217,255,21,64,170,1,0,72,133,192,117,5,141,72,25,205,41,246, - 68,36,68,68,116,82,72,141,76,36,80,255,21,220,168,1,0,68,139,76,36,84,51,210,69,139,193,73,247,216,76,35,195,65,141,73,255,139,193,35,203,35,199,3,193,72,255,200,73,3,193,73,247,241,51,210,72,139,200,72,139,199,73,247,241,72,3,200,139,193,133, - 201,116,14,240,65,131,8,0,77,3,193,72,131,232,1,117,242,72,139,156,36,144,0,0,0,72,129,196,128,0,0,0,95,195,72,139,196,72,137,88,8,72,137,112,16,87,72,131,236,32,72,139,250,139,241,72,141,80,32,72,141,72,24,232,170,254,255,255,72,139,216,72, - 133,192,117,8,199,7,4,0,0,0,235,76,131,61,179,219,1,0,0,117,39,247,68,36,72,0,0,0,128,199,5,159,219,1,0,1,0,0,0,117,7,185,25,0,0,0,205,41,139,84,36,64,72,139,203,232,6,255,255,255,139,84,36,64,76,139,207,68,139,198,72,139,203,255,21,79,169,1, - 0,133,192,117,5,141,72,25,205,41,72,139,92,36,48,72,139,116,36,56,72,131,196,32,95,195,204,204,64,83,72,131,236,32,247,5,108,17,1,0,0,16,0,0,15,132,142,0,0,0,232,129,253,255,255,187,1,0,0,0,132,192,116,24,72,139,5,17,219,1,0,72,141,13,26,219, - 1,0,255,21,36,160,1,0,235,25,243,144,72,139,5,9,219,1,0,72,133,192,117,242,240,72,15,177,29,251,218,1,0,117,233,139,5,251,218,1,0,3,195,137,5,243,218,1,0,59,195,117,17,72,141,21,236,218,1,0,185,4,0,0,0,232,250,254,255,255,232,33,253,255,255, - 132,192,116,26,72,139,5,190,218,1,0,72,141,13,191,218,1,0,72,131,196,32,91,72,255,37,195,159,1,0,72,199,5,168,218,1,0,0,0,0,0,72,131,196,32,91,195,204,204,72,131,236,40,247,5,194,16,1,0,0,16,0,0,116,126,232,219,252,255,255,132,192,116,24,72, - 139,5,112,218,1,0,72,141,13,121,218,1,0,255,21,131,159,1,0,235,28,243,144,72,139,5,104,218,1,0,72,133,192,117,242,141,72,1,240,72,15,177,13,87,218,1,0,117,230,131,5,86,218,1,0,255,117,16,139,13,82,218,1,0,72,141,84,36,48,232,96,254,255,255,232, - 135,252,255,255,132,192,116,22,72,139,5,36,218,1,0,72,141,13,37,218,1,0,255,21,47,159,1,0,235,11,72,199,5,18,218,1,0,0,0,0,0,72,131,196,40,195,204,72,137,92,36,16,72,137,116,36,24,72,137,124,36,32,85,65,84,65,85,65,86,65,87,72,139,236,72,131, - 236,112,76,139,226,76,139,241,232,150,254,255,255,65,139,70,4,76,141,5,183,173,255,255,69,139,126,8,73,3,192,65,139,86,12,77,3,248,65,139,78,16,73,3,208,69,139,110,20,73,3,200,72,131,101,224,0,77,3,232,72,131,101,232,0,15,87,192,131,101,240, - 0,69,139,70,28,72,137,69,200,65,139,6,68,137,69,48,199,69,176,72,0,0,0,76,137,117,184,76,137,101,192,15,17,69,208,168,1,117,41,72,141,69,176,72,137,69,48,232,212,254,255,255,51,210,76,141,77,48,185,87,0,109,192,68,141,66,1,255,21,175,166,1,0, - 51,192,233,4,2,0,0,73,139,63,73,139,244,72,43,242,72,193,254,3,139,246,72,139,4,241,72,193,232,63,131,240,1,137,69,208,116,19,139,4,241,72,141,13,17,173,255,255,72,3,193,72,137,69,216,235,7,15,183,4,241,137,69,216,72,139,5,248,15,1,0,51,219, - 72,133,192,116,31,72,141,85,176,51,201,255,21,21,158,1,0,72,139,216,72,133,192,15,133,118,1,0,0,72,139,5,210,15,1,0,72,133,255,15,133,161,0,0,0,72,133,192,116,21,72,141,85,176,141,79,1,255,21,231,157,1,0,72,139,248,72,133,192,117,108,72,139, - 77,200,69,51,192,51,210,255,21,216,165,1,0,72,139,248,72,133,192,117,85,255,21,10,165,1,0,137,69,240,72,139,5,144,15,1,0,72,133,192,116,21,72,141,85,176,141,79,3,255,21,166,157,1,0,72,139,248,72,133,192,117,43,72,141,69,176,72,137,69,48,232, - 225,253,255,255,51,210,76,141,77,48,185,126,0,109,192,68,141,66,1,255,21,188,165,1,0,72,139,69,232,233,15,1,0,0,72,139,199,73,135,7,72,59,199,117,9,72,139,207,255,21,55,164,1,0,72,139,5,40,15,1,0,72,137,125,224,72,133,192,116,18,72,141,85,176, - 185,2,0,0,0,255,21,64,157,1,0,72,139,216,72,133,219,15,133,157,0,0,0,65,57,94,20,116,45,65,57,94,28,116,39,72,99,71,60,129,60,56,80,69,0,0,117,26,139,77,48,57,76,56,8,117,17,72,59,124,56,48,117,10,73,139,92,245,0,72,133,219,117,106,72,139,85, - 216,72,139,207,255,21,100,164,1,0,72,139,216,72,133,192,117,85,255,21,46,164,1,0,137,69,240,72,139,5,180,14,1,0,72,133,192,116,21,72,141,85,176,141,75,4,255,21,202,156,1,0,72,139,216,72,133,192,117,43,72,141,69,176,72,137,69,48,232,5,253,255, - 255,51,210,76,141,77,48,185,127,0,109,192,68,141,66,1,255,21,224,164,1,0,232,63,252,255,255,72,139,93,232,73,137,28,36,72,139,5,92,14,1,0,72,133,192,116,27,131,101,240,0,72,141,85,176,185,5,0,0,0,72,137,125,224,72,137,93,232,255,21,108,156,1, - 0,232,183,252,255,255,72,139,195,76,141,92,36,112,73,139,91,56,73,139,115,64,73,139,123,72,73,139,227,65,95,65,94,65,93,65,92,93,195,204,204,72,137,92,36,32,85,72,139,236,72,131,236,32,72,139,5,40,203,1,0,72,187,50,162,223,45,153,43,0,0,72,59, - 195,117,116,72,131,101,24,0,72,141,77,24,255,21,178,163,1,0,72,139,69,24,72,137,69,16,255,21,36,163,1,0,139,192,72,49,69,16,255,21,16,163,1,0,139,192,72,141,77,32,72,49,69,16,255,21,32,164,1,0,139,69,32,72,141,77,16,72,193,224,32,72,51,69,32, - 72,51,69,16,72,51,193,72,185,255,255,255,255,255,255,0,0,72,35,193,72,185,51,162,223,45,153,43,0,0,72,59,195,72,15,68,193,72,137,5,165,202,1,0,72,139,92,36,72,72,247,208,72,137,5,142,202,1,0,72,131,196,32,93,195,72,141,13,161,214,1,0,72,255, - 37,90,163,1,0,204,204,72,141,13,145,214,1,0,233,240,17,0,0,72,131,236,40,232,19,0,0,0,72,131,8,36,232,18,0,0,0,72,131,8,2,72,131,196,40,195,204,72,141,5,121,214,1,0,195,72,141,5,121,214,1,0,195,72,141,5,121,214,1,0,195,72,137,92,36,8,87,72,131, - 236,32,72,141,29,143,170,1,0,72,141,61,136,170,1,0,235,18,72,139,3,72,133,192,116,6,255,21,32,155,1,0,72,131,195,8,72,59,223,114,233,72,139,92,36,48,72,131,196,32,95,195,72,137,92,36,8,87,72,131,236,32,72,141,29,99,170,1,0,72,141,61,92,170,1, - 0,235,18,72,139,3,72,133,192,116,6,255,21,228,154,1,0,72,131,195,8,72,59,223,114,233,72,139,92,36,48,72,131,196,32,95,195,72,137,92,36,24,72,137,116,36,32,87,72,131,236,80,72,139,218,72,139,241,191,32,5,147,25,72,133,210,116,29,246,2,16,116, - 24,72,139,9,72,131,233,8,72,139,1,72,139,88,48,72,139,64,64,255,21,148,154,1,0,72,141,84,36,32,72,139,203,255,21,230,162,1,0,72,137,68,36,32,72,133,219,116,15,246,3,8,117,5,72,133,192,117,5,191,0,64,153,1,186,1,0,0,0,72,137,124,36,40,76,141, - 76,36,40,72,137,116,36,48,185,99,115,109,224,72,137,92,36,56,72,137,68,36,64,68,141,66,3,255,21,128,162,1,0,72,139,92,36,112,72,139,116,36,120,72,131,196,80,95,195,72,137,92,36,8,72,137,108,36,16,72,137,116,36,24,87,65,84,65,85,65,86,65,87,72, - 131,236,64,72,139,233,77,139,249,73,139,200,73,139,240,76,139,234,232,244,57,0,0,77,139,103,8,77,139,55,73,139,95,56,77,43,244,246,69,4,102,65,139,127,72,15,133,220,0,0,0,72,137,108,36,48,72,137,116,36,56,59,59,15,131,118,1,0,0,139,247,72,3, - 246,139,68,243,4,76,59,240,15,130,170,0,0,0,139,68,243,8,76,59,240,15,131,157,0,0,0,131,124,243,16,0,15,132,146,0,0,0,131,124,243,12,1,116,23,139,68,243,12,72,141,76,36,48,73,3,196,73,139,213,255,208,133,192,120,125,126,116,129,125,0,99,115, - 109,224,117,40,72,131,61,177,12,1,0,0,116,30,72,141,13,168,12,1,0,232,203,56,0,0,133,192,116,14,186,1,0,0,0,72,139,205,255,21,145,12,1,0,139,76,243,16,65,184,1,0,0,0,73,3,204,73,139,213,232,4,57,0,0,73,139,71,64,76,139,197,139,84,243,16,73,139, - 205,68,139,77,0,73,3,212,72,137,68,36,40,73,139,71,40,72,137,68,36,32,255,21,139,161,1,0,232,6,57,0,0,255,199,233,53,255,255,255,51,192,233,177,0,0,0,73,139,119,32,73,43,244,233,150,0,0,0,139,207,72,3,201,139,68,203,4,76,59,240,15,130,130,0, - 0,0,139,68,203,8,76,59,240,115,121,68,139,85,4,65,131,226,32,116,68,69,51,201,133,210,116,56,69,139,193,77,3,192,66,139,68,195,4,72,59,240,114,32,66,139,68,195,8,72,59,240,115,22,139,68,203,16,66,57,68,195,16,117,11,139,68,203,12,66,57,68,195, - 12,116,8,65,255,193,68,59,202,114,200,68,59,202,117,55,139,68,203,16,133,192,116,12,72,59,240,117,30,69,133,210,117,37,235,23,141,71,1,73,139,213,65,137,71,72,68,139,68,203,12,177,1,77,3,196,65,255,208,255,199,139,19,59,250,15,130,96,255,255, - 255,184,1,0,0,0,76,141,92,36,64,73,139,91,48,73,139,107,56,73,139,115,64,73,139,227,65,95,65,94,65,93,65,92,95,195,204,72,139,196,72,137,88,8,72,137,104,16,72,137,112,24,72,137,120,32,65,86,138,25,76,141,81,1,136,26,65,139,241,76,141,53,225, - 166,255,255,73,139,232,76,139,218,72,139,249,246,195,4,116,36,65,15,182,10,131,225,15,74,15,190,132,49,16,99,1,0,66,138,140,49,32,99,1,0,76,43,208,65,139,66,252,211,232,137,66,4,246,195,8,116,10,65,139,2,73,131,194,4,137,66,8,246,195,16,116, - 10,65,139,2,73,131,194,4,137,66,12,73,99,2,77,141,66,4,69,51,201,68,56,76,36,48,117,80,246,195,2,116,75,72,141,20,40,15,182,10,131,225,15,74,15,190,132,49,16,99,1,0,66,138,140,49,32,99,1,0,72,43,208,68,139,82,252,65,211,234,69,137,75,16,69,133, - 210,116,32,139,2,139,74,4,72,141,82,8,59,198,116,10,65,255,193,69,59,202,114,235,235,9,65,137,75,16,235,3,137,66,16,246,195,1,116,37,65,15,182,8,131,225,15,74,15,190,148,49,16,99,1,0,66,138,140,49,32,99,1,0,76,43,194,65,139,80,252,211,234,65, - 137,83,20,72,139,92,36,16,76,43,199,72,139,108,36,24,73,139,192,72,139,116,36,32,72,139,124,36,40,65,94,195,204,204,76,139,65,16,76,141,29,217,165,255,255,76,137,65,8,76,139,201,65,15,182,8,131,225,15,74,15,190,132,25,16,99,1,0,66,138,140,25, - 32,99,1,0,76,43,192,65,139,64,252,211,232,77,137,65,8,65,137,65,24,65,15,182,8,131,225,15,74,15,190,132,25,16,99,1,0,66,138,140,25,32,99,1,0,76,43,192,65,139,64,252,77,137,65,8,211,232,65,137,65,28,65,15,182,8,131,225,15,74,15,190,132,25,16, - 99,1,0,66,138,140,25,32,99,1,0,76,43,192,65,139,64,252,77,137,65,8,211,232,65,137,65,32,65,139,0,73,131,192,4,131,122,8,0,77,137,65,8,65,137,65,36,15,132,27,1,0,0,68,139,82,8,65,15,182,8,131,225,15,74,15,190,132,25,16,99,1,0,66,138,140,25,32, - 99,1,0,76,43,192,65,139,64,252,77,137,65,8,211,232,65,137,65,24,65,15,182,8,131,225,15,74,15,190,132,25,16,99,1,0,66,138,140,25,32,99,1,0,76,43,192,65,139,64,252,77,137,65,8,211,232,65,137,65,28,65,15,182,8,131,225,15,74,15,190,132,25,16,99, - 1,0,66,138,140,25,32,99,1,0,76,43,192,65,139,64,252,73,141,80,4,77,137,65,8,211,232,65,137,65,32,65,139,0,73,137,81,8,65,137,65,36,15,182,10,131,225,15,74,15,190,132,25,16,99,1,0,66,138,140,25,32,99,1,0,72,43,208,139,66,252,211,232,73,137,81, - 8,65,137,65,24,15,182,10,131,225,15,74,15,190,132,25,16,99,1,0,66,138,140,25,32,99,1,0,72,43,208,139,66,252,211,232,73,137,81,8,65,137,65,28,15,182,10,131,225,15,74,15,190,132,25,16,99,1,0,66,138,140,25,32,99,1,0,72,43,208,139,66,252,76,141, - 66,4,211,232,73,137,81,8,65,137,65,32,139,2,77,137,65,8,65,137,65,36,73,131,234,1,15,133,233,254,255,255,195,204,204,72,137,92,36,8,72,137,108,36,16,72,137,116,36,24,87,72,131,236,32,139,121,12,139,242,133,255,72,139,233,116,43,141,95,255,139, - 251,232,22,54,0,0,72,141,20,155,72,139,64,96,72,141,12,144,72,99,69,16,72,3,193,59,112,4,126,5,59,112,8,126,6,133,219,235,211,51,192,72,139,92,36,48,72,139,108,36,56,72,139,116,36,64,72,131,196,32,95,195,204,204,64,83,72,131,236,32,72,139,218, - 72,139,209,72,139,203,232,24,55,0,0,139,208,72,139,203,232,126,255,255,255,72,133,192,15,149,192,72,131,196,32,91,195,204,204,72,137,92,36,8,72,137,116,36,16,87,72,131,236,32,76,141,76,36,72,73,139,216,72,139,250,232,69,0,0,0,72,139,215,72,139, - 203,72,139,240,232,211,54,0,0,139,208,72,139,203,232,57,255,255,255,72,133,192,117,6,65,131,201,255,235,4,68,139,72,4,76,139,195,72,139,215,72,139,206,232,180,61,0,0,72,139,92,36,48,72,139,116,36,56,72,131,196,32,95,195,72,137,92,36,16,72,137, - 108,36,24,86,87,65,84,65,86,65,87,72,131,236,32,65,139,112,12,76,139,225,73,139,200,73,139,249,77,139,240,76,139,250,232,110,54,0,0,77,139,20,36,139,232,76,137,23,133,246,116,119,73,99,70,16,141,78,255,139,241,72,141,12,137,72,141,28,136,73, - 3,95,8,59,107,4,126,226,59,107,8,127,221,73,139,15,72,141,84,36,80,69,51,192,255,21,73,156,1,0,76,99,67,16,51,201,76,3,68,36,80,68,139,75,12,68,139,16,69,133,201,116,23,73,141,80,12,72,99,2,73,59,194,116,11,255,193,72,131,194,20,65,59,201,114, - 237,65,59,201,115,153,73,139,4,36,72,141,12,137,73,99,76,136,16,72,139,12,1,72,137,15,72,139,92,36,88,72,139,199,72,139,108,36,96,72,131,196,32,65,95,65,94,65,92,95,94,195,64,85,72,141,108,36,225,72,129,236,224,0,0,0,72,139,5,115,194,1,0,72, - 51,196,72,137,69,15,76,139,85,119,72,141,5,9,6,1,0,15,16,0,76,139,217,72,141,76,36,48,15,16,72,16,15,17,1,15,16,64,32,15,17,73,16,15,16,72,48,15,17,65,32,15,16,64,64,15,17,73,48,15,16,72,80,15,17,65,64,15,16,64,96,15,17,73,80,15,16,136,128,0, - 0,0,15,17,65,96,15,16,64,112,72,139,128,144,0,0,0,15,17,65,112,15,17,137,128,0,0,0,72,137,129,144,0,0,0,72,141,5,112,62,0,0,73,139,11,72,137,69,143,72,139,69,79,72,137,69,159,72,99,69,95,72,137,69,167,72,139,69,87,72,137,69,183,15,182,69,127, - 72,137,69,199,73,139,66,64,72,137,68,36,40,73,139,66,40,76,137,77,151,69,51,201,76,137,69,175,76,141,68,36,48,72,137,85,191,73,139,18,72,137,68,36,32,72,199,69,207,32,5,147,25,255,21,18,155,1,0,72,139,77,15,72,51,204,232,70,102,0,0,72,129,196, - 224,0,0,0,93,195,204,72,137,92,36,8,72,137,108,36,16,72,137,116,36,24,87,65,84,65,85,65,86,65,87,72,131,236,64,72,139,156,36,144,0,0,0,76,139,226,72,139,233,73,139,209,72,139,203,73,139,249,69,139,248,68,139,115,12,232,141,52,0,0,69,51,210,139, - 240,69,133,246,15,132,235,0,0,0,76,139,95,8,131,200,255,72,99,91,16,68,139,200,68,139,232,65,139,214,68,141,66,255,75,141,12,128,73,141,4,139,59,116,24,4,126,6,59,116,24,8,126,8,65,139,208,69,133,192,117,224,69,139,194,133,210,116,16,141,66, - 255,72,141,4,128,72,141,20,131,73,3,211,235,3,73,139,210,73,141,12,27,65,131,203,255,72,133,210,116,15,139,66,4,57,1,126,35,139,66,8,57,65,4,127,27,68,59,57,124,22,68,59,121,4,127,16,69,59,203,65,139,192,69,139,232,65,15,69,193,68,139,200,65, - 255,192,72,131,193,20,69,59,198,114,197,69,59,203,76,137,100,36,32,65,139,194,76,137,100,36,48,65,15,69,193,76,141,92,36,64,73,139,91,48,73,139,115,64,137,68,36,40,65,141,69,1,15,16,68,36,32,68,15,69,208,72,139,197,68,137,84,36,56,15,16,76,36, - 48,243,15,127,69,0,243,15,127,77,16,73,139,107,56,73,139,227,65,95,65,94,65,93,65,92,95,195,232,123,49,0,0,204,204,204,138,2,36,1,195,204,204,204,72,131,236,40,65,246,0,1,72,139,9,72,137,76,36,48,116,13,65,139,64,20,72,139,12,8,72,137,76,36, - 48,65,131,201,255,72,141,76,36,48,232,115,62,0,0,72,131,196,40,195,204,204,64,85,72,141,108,36,225,72,129,236,224,0,0,0,72,139,5,243,191,1,0,72,51,196,72,137,69,15,76,139,85,119,72,141,5,233,2,1,0,15,16,0,76,139,217,72,141,76,36,48,15,16,72, - 16,15,17,1,15,16,64,32,15,17,73,16,15,16,72,48,15,17,65,32,15,16,64,64,15,17,73,48,15,16,72,80,15,17,65,64,15,16,64,96,15,17,73,80,15,16,136,128,0,0,0,15,17,65,96,15,16,64,112,72,139,128,144,0,0,0,15,17,65,112,15,17,137,128,0,0,0,72,137,129, - 144,0,0,0,72,141,5,224,64,0,0,72,137,69,143,72,139,69,79,72,137,69,159,72,99,69,95,76,137,69,175,76,139,69,111,72,137,69,167,15,182,69,127,72,137,69,199,73,139,72,24,77,139,64,32,73,3,74,8,77,3,66,8,72,99,69,103,72,137,69,231,73,139,66,64,72, - 137,68,36,40,73,139,66,40,76,137,77,151,69,51,201,72,137,77,183,73,139,11,72,137,85,191,73,139,18,76,137,69,215,76,141,68,36,48,72,137,68,36,32,72,199,69,207,32,5,147,25,255,21,118,152,1,0,72,139,77,15,72,51,204,232,170,99,0,0,72,129,196,224, - 0,0,0,93,195,204,72,139,1,72,139,209,73,137,1,65,246,0,1,116,14,65,139,72,20,72,139,2,72,139,12,1,73,137,9,73,139,193,195,204,204,204,72,139,196,72,137,88,8,72,137,104,16,72,137,112,24,72,137,120,32,65,86,72,131,236,96,72,137,84,36,32,72,139, - 250,15,41,112,232,72,139,233,72,137,84,36,48,51,219,137,92,36,40,72,141,80,216,15,40,116,36,32,72,139,207,102,15,127,112,216,69,139,240,51,246,232,106,248,255,255,68,139,15,51,210,69,133,201,15,132,194,0,0,0,76,139,71,8,76,141,21,53,158,255, - 255,72,139,71,24,139,203,68,59,240,124,27,72,193,232,32,68,59,240,127,18,133,201,139,218,139,242,15,68,217,137,92,36,40,15,40,116,36,32,65,15,182,8,255,194,131,225,15,74,15,190,132,17,16,99,1,0,66,138,140,17,32,99,1,0,76,43,192,65,139,64,252, - 211,232,76,137,71,8,137,71,24,65,15,182,8,131,225,15,74,15,190,132,17,16,99,1,0,66,138,140,17,32,99,1,0,76,43,192,65,139,64,252,211,232,76,137,71,8,137,71,28,65,15,182,8,131,225,15,74,15,190,132,17,16,99,1,0,66,138,140,17,32,99,1,0,76,43,192, - 65,139,64,252,211,232,76,137,71,8,137,71,32,65,139,0,73,131,192,4,76,137,71,8,137,71,36,65,59,209,15,133,73,255,255,255,255,198,102,15,127,116,36,64,72,141,84,36,64,137,116,36,56,72,139,207,232,129,247,255,255,15,16,68,36,48,76,141,92,36,96, - 72,139,197,73,139,91,16,73,139,115,32,73,139,123,40,243,15,127,117,0,15,40,116,36,80,243,15,127,69,16,73,139,107,24,73,139,227,65,94,195,204,204,204,72,131,236,40,232,71,47,0,0,72,139,64,96,72,131,196,40,195,204,204,64,83,72,131,236,32,72,139, - 217,232,46,47,0,0,72,137,88,96,72,131,196,32,91,195,72,131,236,40,232,27,47,0,0,72,139,64,104,72,131,196,40,195,204,204,64,83,72,131,236,32,72,139,217,232,2,47,0,0,72,137,88,104,72,131,196,32,91,195,64,83,72,131,236,32,72,139,217,72,137,17,232, - 231,46,0,0,72,59,88,88,115,11,232,220,46,0,0,72,139,72,88,235,2,51,201,72,137,75,8,232,203,46,0,0,72,137,88,88,72,139,195,72,131,196,32,91,195,204,204,72,137,92,36,8,87,72,131,236,32,72,139,249,232,170,46,0,0,72,59,120,88,117,53,232,159,46,0, - 0,72,139,80,88,72,133,210,116,39,72,139,90,8,72,59,250,116,10,72,139,211,72,133,219,116,22,235,237,232,126,46,0,0,72,137,88,88,72,139,92,36,48,72,131,196,32,95,195,232,166,45,0,0,204,204,72,139,196,72,137,88,16,72,137,104,24,72,137,112,32,87, - 72,131,236,64,73,139,89,8,73,139,249,73,139,240,72,137,80,8,72,139,233,232,62,46,0,0,72,137,88,96,72,139,93,56,232,49,46,0,0,72,137,88,104,232,40,46,0,0,72,139,79,56,76,139,207,76,139,198,139,17,72,139,205,72,3,80,96,51,192,136,68,36,56,72,137, - 68,36,48,137,68,36,40,72,137,84,36,32,72,141,84,36,80,232,95,66,0,0,72,139,92,36,88,72,139,108,36,96,72,139,116,36,104,72,131,196,64,95,195,204,204,72,139,196,72,137,88,16,72,137,104,24,72,137,112,32,87,72,131,236,96,131,96,220,0,73,139,249, - 131,96,224,0,73,139,240,131,96,228,0,72,139,233,131,96,232,0,131,96,236,0,73,139,89,8,198,64,216,0,72,137,80,8,232,158,45,0,0,72,137,88,96,72,139,93,56,232,145,45,0,0,72,137,88,104,232,136,45,0,0,72,139,79,56,72,141,84,36,64,76,139,71,8,198, - 68,36,32,0,139,9,72,3,72,96,72,139,71,16,68,139,8,232,60,244,255,255,198,68,36,56,0,72,141,68,36,64,72,131,100,36,48,0,72,141,84,36,112,131,100,36,40,0,76,139,207,76,139,198,72,137,68,36,32,72,139,205,232,167,65,0,0,76,141,92,36,96,73,139,91, - 24,73,139,107,32,73,139,115,40,73,139,227,95,195,204,72,139,196,76,137,72,32,76,137,64,24,72,137,80,16,72,137,72,8,83,72,131,236,112,72,139,217,131,96,200,0,72,137,72,224,76,137,64,232,232,244,44,0,0,72,141,84,36,88,139,11,72,139,64,16,255,21, - 243,139,1,0,199,68,36,64,0,0,0,0,235,0,139,68,36,64,72,131,196,112,91,195,204,204,204,72,139,196,76,137,72,32,76,137,64,24,72,137,80,16,72,137,72,8,83,72,131,236,112,72,139,217,131,96,200,0,72,137,72,224,76,137,64,232,232,160,44,0,0,72,141,84, - 36,88,139,11,72,139,64,16,255,21,159,139,1,0,199,68,36,64,0,0,0,0,235,0,139,68,36,64,72,131,196,112,91,195,204,204,204,204,204,204,204,204,204,204,204,72,133,201,116,103,136,84,36,16,72,131,236,72,129,57,99,115,109,224,117,83,131,121,24,4,117, - 77,139,65,32,45,32,5,147,25,131,248,2,119,64,72,139,65,48,72,133,192,116,55,72,99,80,4,133,210,116,17,72,3,81,56,72,139,73,40,232,54,0,0,0,235,32,235,30,246,0,16,116,25,72,139,65,40,72,139,8,72,133,201,116,13,72,139,1,72,139,64,16,255,21,24, - 139,1,0,72,131,196,72,195,204,204,204,72,131,236,40,232,199,37,0,0,204,204,204,72,255,226,204,64,83,72,131,236,32,72,139,217,232,226,43,0,0,72,139,80,88,235,9,72,57,26,116,18,72,139,82,8,72,133,210,117,242,141,66,1,72,131,196,32,91,195,51,192, - 235,246,204,72,99,2,72,3,193,131,122,4,0,124,22,76,99,74,4,72,99,82,8,73,139,12,9,76,99,4,10,77,3,193,73,3,192,195,204,72,137,92,36,8,87,72,131,236,32,72,139,57,72,139,217,129,63,82,67,67,224,116,18,129,63,77,79,67,224,116,10,129,63,99,115,109, - 224,116,34,235,19,232,109,43,0,0,131,120,48,0,126,8,232,98,43,0,0,255,72,48,72,139,92,36,48,51,192,72,131,196,32,95,195,232,77,43,0,0,72,137,120,32,72,139,91,8,232,64,43,0,0,72,137,88,40,232,7,37,0,0,204,204,204,72,137,92,36,8,72,137,116,36, - 16,72,137,124,36,24,65,86,72,131,236,32,128,121,8,0,76,139,242,72,139,241,116,76,72,139,1,72,133,192,116,68,72,131,207,255,72,255,199,128,60,56,0,117,247,72,141,79,1,232,189,36,0,0,72,139,216,72,133,192,116,28,76,139,6,72,141,87,1,72,139,200, - 232,102,100,0,0,72,139,195,65,198,70,8,1,73,137,6,51,219,72,139,203,232,125,36,0,0,235,10,72,139,1,72,137,2,198,66,8,0,72,139,92,36,48,72,139,116,36,56,72,139,124,36,64,72,131,196,32,65,94,195,204,204,204,64,83,72,131,236,32,128,121,8,0,72,139, - 217,116,8,72,139,9,232,65,36,0,0,72,131,35,0,198,67,8,0,72,131,196,32,91,195,204,204,204,64,83,72,131,236,32,255,21,88,145,1,0,72,133,192,116,19,72,139,24,72,139,200,232,20,36,0,0,72,139,195,72,133,219,117,237,72,131,196,32,91,195,204,204,72, - 59,202,116,25,72,131,194,9,72,141,65,9,72,43,208,138,8,58,12,16,117,10,72,255,192,132,201,117,242,51,192,195,27,192,131,200,1,195,204,72,131,236,40,232,7,100,0,0,132,192,117,4,50,192,235,18,232,166,41,0,0,132,192,117,7,232,57,100,0,0,235,236, - 176,1,72,131,196,40,195,72,131,236,40,132,201,117,10,232,207,41,0,0,232,30,100,0,0,176,1,72,131,196,40,195,204,204,204,72,131,236,40,232,183,41,0,0,176,1,72,131,196,40,195,72,131,236,40,232,231,41,0,0,72,133,192,15,149,192,72,131,196,40,195, - 72,131,236,40,51,201,232,145,42,0,0,176,1,72,131,196,40,195,204,204,204,204,204,204,204,204,204,204,204,204,204,204,72,131,236,40,232,19,0,0,0,72,133,192,116,6,255,21,156,136,1,0,232,195,40,0,0,204,204,204,72,139,5,101,198,1,0,144,195,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,102,102,15,31,132,0,0,0,0,0,87,139,194,72,139,249,73,139,200,243,170,73,139,193,95,195,204,204,204,204,204,204,102,102,15,31,132,0,0,0,0,0,72,139,193,76,139,201,76,141,21,19,151,255, - 255,15,182,210,73,187,1,1,1,1,1,1,1,1,76,15,175,218,102,73,15,110,195,73,131,248,15,15,135,131,0,0,0,15,31,0,73,3,200,71,139,140,130,0,160,2,0,77,3,202,65,255,225,76,137,89,241,68,137,89,249,102,68,137,89,253,68,136,89,255,195,76,137,89,242, - 68,137,89,250,102,68,137,89,254,195,102,102,102,102,102,102,102,15,31,132,0,0,0,0,0,76,137,89,243,68,137,89,251,68,136,89,255,195,15,31,0,76,137,89,244,68,137,89,252,195,76,137,89,245,102,68,137,89,253,68,136,89,255,195,76,137,89,247,68,136, - 89,255,195,76,137,89,246,102,68,137,89,254,195,76,137,89,248,195,144,102,15,108,192,73,131,248,32,119,12,243,15,127,1,243,66,15,127,68,1,240,195,131,61,91,182,1,0,3,15,130,221,1,0,0,76,59,5,86,182,1,0,118,22,76,59,5,85,182,1,0,119,13,246,5,44, - 194,1,0,2,15,133,238,254,255,255,196,227,125,24,192,1,76,139,201,73,131,225,31,73,131,233,32,73,43,201,73,43,209,77,3,193,73,129,248,0,1,0,0,118,101,76,59,5,28,182,1,0,15,135,206,0,0,0,102,102,102,102,102,102,15,31,132,0,0,0,0,0,197,253,127, - 1,197,253,127,65,32,197,253,127,65,64,197,253,127,65,96,197,253,127,129,128,0,0,0,197,253,127,129,160,0,0,0,197,253,127,129,192,0,0,0,197,253,127,129,224,0,0,0,72,129,193,0,1,0,0,73,129,232,0,1,0,0,73,129,248,0,1,0,0,115,182,77,141,72,31,73, - 131,225,224,77,139,217,73,193,235,5,71,139,156,154,64,160,2,0,77,3,218,65,255,227,196,161,126,127,132,9,0,255,255,255,196,161,126,127,132,9,32,255,255,255,196,161,126,127,132,9,64,255,255,255,196,161,126,127,132,9,96,255,255,255,196,161,126, - 127,68,9,128,196,161,126,127,68,9,160,196,161,126,127,68,9,192,196,161,126,127,68,1,224,197,254,127,0,197,248,119,195,102,102,102,102,102,15,31,132,0,0,0,0,0,197,253,231,1,197,253,231,65,32,197,253,231,65,64,197,253,231,65,96,197,253,231,129, - 128,0,0,0,197,253,231,129,160,0,0,0,197,253,231,129,192,0,0,0,197,253,231,129,224,0,0,0,72,129,193,0,1,0,0,73,129,232,0,1,0,0,73,129,248,0,1,0,0,115,182,77,141,72,31,73,131,225,224,77,139,217,73,193,235,5,71,139,156,154,100,160,2,0,77,3,218, - 65,255,227,196,161,125,231,132,9,0,255,255,255,196,161,125,231,132,9,32,255,255,255,196,161,125,231,132,9,64,255,255,255,196,161,125,231,132,9,96,255,255,255,196,161,125,231,68,9,128,196,161,125,231,68,9,160,196,161,125,231,68,9,192,196,161, - 126,127,68,1,224,197,254,127,0,15,174,248,197,248,119,195,102,102,15,31,132,0,0,0,0,0,76,59,5,121,180,1,0,118,13,246,5,88,192,1,0,2,15,133,26,253,255,255,76,139,201,73,131,225,15,73,131,233,16,73,43,201,73,43,209,77,3,193,73,129,248,128,0,0, - 0,118,75,102,102,102,102,102,15,31,132,0,0,0,0,0,102,15,127,1,102,15,127,65,16,102,15,127,65,32,102,15,127,65,48,102,15,127,65,64,102,15,127,65,80,102,15,127,65,96,102,15,127,65,112,72,129,193,128,0,0,0,73,129,232,128,0,0,0,73,129,248,128,0, - 0,0,115,194,77,141,72,15,73,131,225,240,77,139,217,73,193,235,4,71,139,156,154,136,160,2,0,77,3,218,65,255,227,243,66,15,127,68,9,128,243,66,15,127,68,9,144,243,66,15,127,68,9,160,243,66,15,127,68,9,176,243,66,15,127,68,9,192,243,66,15,127,68, - 9,208,243,66,15,127,68,9,224,243,66,15,127,68,1,240,243,15,127,0,195,76,139,193,68,15,183,202,51,201,131,61,144,179,1,0,2,125,43,73,139,208,65,15,183,0,73,131,192,2,102,133,192,117,243,73,131,232,2,76,59,194,116,6,102,69,57,8,117,241,102,69, - 57,8,73,15,68,200,72,139,193,195,72,139,209,235,18,102,69,57,8,73,15,68,208,102,65,57,8,116,87,73,131,192,2,65,141,64,1,168,14,117,230,102,65,59,201,117,36,184,1,0,255,255,102,15,110,200,235,4,73,131,192,16,243,65,15,111,0,102,15,58,99,200,21, - 117,239,72,99,193,73,141,4,64,195,102,65,15,110,201,243,65,15,111,0,102,15,58,99,200,65,115,7,72,99,193,73,141,20,64,116,6,73,131,192,16,235,228,72,139,194,195,204,204,204,204,204,204,204,204,204,204,204,204,204,72,141,5,105,184,1,0,72,137,5, - 90,202,1,0,176,1,195,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,72,131,236,40,72,141,13,77,192,1,0,232,212,8,0,0,72,141,13,89,192,1,0,232,200,8,0,0,176,1,72,131,196,40,195,204,204,204,204,204,204,204,204,204,204,204,204,204, - 176,1,195,204,204,204,204,204,204,204,204,204,204,204,204,204,176,1,195,204,204,204,204,204,204,204,204,204,204,204,204,204,72,131,236,40,232,159,12,0,0,176,1,72,131,196,40,195,176,1,195,204,204,204,204,204,204,204,204,204,204,204,204,204,176, - 1,195,204,204,204,204,204,204,204,204,204,204,204,204,204,64,83,72,131,236,32,72,139,29,91,178,1,0,72,139,203,232,79,124,0,0,72,139,203,232,151,1,0,0,72,139,203,232,103,126,0,0,72,139,203,232,115,129,0,0,72,139,203,232,227,1,0,0,176,1,72,131, - 196,32,91,195,204,204,204,51,201,233,25,250,255,255,204,204,204,204,204,204,204,204,204,64,83,72,131,236,32,72,139,13,43,201,1,0,131,200,255,240,15,193,1,131,248,1,117,31,72,139,13,24,201,1,0,72,141,29,25,178,1,0,72,59,203,116,12,232,7,121,0, - 0,72,137,29,0,201,1,0,176,1,72,131,196,32,91,195,72,131,236,40,72,139,13,69,201,1,0,232,232,120,0,0,72,139,13,65,201,1,0,72,131,37,49,201,1,0,0,232,212,120,0,0,72,139,13,157,200,1,0,72,131,37,37,201,1,0,0,232,192,120,0,0,72,139,13,145,200,1, - 0,72,131,37,129,200,1,0,0,232,172,120,0,0,72,131,37,124,200,1,0,0,176,1,72,131,196,40,195,204,204,204,204,204,176,1,195,204,72,141,21,181,246,0,0,72,141,13,174,245,0,0,233,189,120,0,0,204,72,131,236,40,132,201,116,22,72,131,61,192,200,1,0,0, - 116,5,232,229,128,0,0,176,1,72,131,196,40,195,72,141,21,131,246,0,0,72,141,13,124,245,0,0,72,131,196,40,233,27,121,0,0,204,204,204,72,131,236,40,232,103,99,0,0,176,1,72,131,196,40,195,72,131,236,40,232,243,100,0,0,72,133,192,15,149,192,72,131, - 196,40,195,72,131,236,40,232,167,101,0,0,176,1,72,131,196,40,195,72,137,92,36,8,87,72,131,236,32,72,139,249,232,54,0,0,0,51,219,72,133,192,116,26,73,186,112,32,211,28,223,15,237,209,72,139,207,255,21,224,129,1,0,133,192,15,149,195,139,195,72, - 139,92,36,48,72,131,196,32,95,195,204,204,72,137,13,245,188,1,0,195,64,83,72,131,236,32,51,201,232,63,98,0,0,144,72,139,5,151,176,1,0,139,200,131,225,63,72,139,29,211,188,1,0,72,51,216,72,211,203,51,201,232,58,98,0,0,72,139,195,72,131,196,32, - 91,195,204,139,5,198,188,1,0,144,195,69,51,192,65,141,80,2,233,224,0,0,0,51,210,51,201,68,141,66,1,233,211,0,0,0,204,204,204,72,137,13,153,188,1,0,195,64,83,72,131,236,48,72,199,68,36,32,254,255,255,255,139,217,72,131,100,36,72,0,76,141,68,36, - 72,72,141,21,109,245,0,0,51,201,255,21,125,136,1,0,72,139,76,36,72,133,192,116,41,72,141,21,109,245,0,0,255,21,127,136,1,0,72,133,192,116,18,73,186,112,123,90,94,155,135,1,162,139,203,255,21,8,129,1,0,72,139,76,36,72,72,133,201,116,7,255,21, - 192,135,1,0,144,72,131,196,48,91,195,204,72,131,236,40,232,135,132,0,0,131,248,1,116,12,232,73,132,0,0,132,192,15,148,192,235,2,50,192,72,131,196,40,195,204,204,204,64,83,72,131,236,32,139,217,232,207,255,255,255,132,192,116,17,255,21,181,135, - 1,0,72,139,200,139,211,255,21,66,137,1,0,139,203,232,67,255,255,255,139,203,255,21,19,135,1,0,204,204,204,68,137,68,36,24,137,84,36,16,85,72,139,236,72,131,236,80,72,199,69,224,254,255,255,255,72,137,92,36,96,139,217,69,133,192,117,74,51,201, - 255,21,187,135,1,0,72,133,192,116,61,185,77,90,0,0,102,57,8,117,51,72,99,72,60,72,3,200,129,57,80,69,0,0,117,36,184,11,2,0,0,102,57,65,24,117,25,131,185,132,0,0,0,14,118,16,131,185,248,0,0,0,0,116,7,139,203,232,201,254,255,255,198,69,40,0,72, - 141,69,24,72,137,69,232,72,141,69,32,72,137,69,240,72,141,69,40,72,137,69,248,184,2,0,0,0,137,69,212,137,69,216,76,141,77,212,76,141,69,232,72,141,85,216,72,141,77,208,232,233,0,0,0,144,131,125,32,0,116,11,72,139,92,36,96,72,131,196,80,93,195, - 139,203,232,8,255,255,255,204,204,204,204,64,83,72,131,236,48,72,139,217,128,61,4,187,1,0,0,15,133,169,0,0,0,184,1,0,0,0,135,5,239,186,1,0,72,139,1,139,8,133,201,117,62,72,139,5,135,174,1,0,72,139,21,208,186,1,0,72,59,208,116,34,139,200,131, - 225,63,72,51,194,72,211,200,73,186,112,40,217,120,69,46,1,153,69,51,192,51,210,51,201,255,21,113,127,1,0,72,141,13,194,187,1,0,235,12,131,249,1,117,13,72,141,13,204,187,1,0,232,171,4,0,0,144,72,139,3,131,56,0,117,19,72,141,21,215,127,1,0,72, - 141,13,176,127,1,0,232,187,10,0,0,72,141,21,212,127,1,0,72,141,13,197,127,1,0,232,168,10,0,0,72,139,67,8,131,56,0,117,14,198,5,92,186,1,0,1,72,139,67,16,198,0,1,72,131,196,48,91,195,232,182,25,0,0,144,204,72,137,92,36,8,76,137,76,36,32,87,72, - 131,236,32,73,139,217,73,139,248,139,10,232,112,95,0,0,144,72,139,207,232,15,255,255,255,144,139,11,232,123,95,0,0,72,139,92,36,48,72,131,196,32,95,195,72,137,92,36,8,85,86,87,65,86,65,87,72,139,236,72,131,236,48,51,255,68,139,241,133,201,15, - 132,83,1,0,0,141,65,255,131,248,1,118,22,232,111,130,0,0,141,95,22,137,24,232,181,117,0,0,139,251,233,53,1,0,0,232,121,105,0,0,72,141,29,210,185,1,0,65,184,4,1,0,0,72,139,211,51,201,232,246,141,0,0,72,139,53,83,196,1,0,72,137,29,44,196,1,0,72, - 133,246,116,5,64,56,62,117,3,72,139,243,72,141,69,72,72,137,125,64,76,141,77,64,72,137,68,36,32,69,51,192,72,137,125,72,51,210,72,139,206,232,81,1,0,0,76,139,125,64,65,184,1,0,0,0,72,139,85,72,73,139,207,232,219,0,0,0,72,139,216,72,133,192,117, - 24,232,226,129,0,0,187,12,0,0,0,51,201,137,24,232,12,116,0,0,233,106,255,255,255,78,141,4,248,72,139,211,72,141,69,72,72,139,206,76,141,77,64,72,137,68,36,32,232,255,0,0,0,65,131,254,1,117,22,139,69,64,255,200,72,137,29,169,195,1,0,137,5,155, - 195,1,0,51,201,235,105,72,141,85,56,72,137,125,56,72,139,203,232,243,130,0,0,139,240,133,192,116,25,72,139,77,56,232,176,115,0,0,72,139,203,72,137,125,56,232,164,115,0,0,139,254,235,63,72,139,85,56,72,139,207,72,139,194,72,57,58,116,12,72,141, - 64,8,72,255,193,72,57,56,117,244,137,13,71,195,1,0,51,201,72,137,125,56,72,137,21,66,195,1,0,232,109,115,0,0,72,139,203,72,137,125,56,232,97,115,0,0,72,139,92,36,96,139,199,72,131,196,48,65,95,65,94,95,94,93,195,204,204,64,83,72,131,236,32,72, - 184,255,255,255,255,255,255,255,31,76,139,202,72,59,200,115,61,51,210,72,131,200,255,73,247,240,76,59,200,115,47,72,193,225,3,77,15,175,200,72,139,193,72,247,208,73,59,193,118,28,73,3,201,186,1,0,0,0,232,194,129,0,0,51,201,72,139,216,232,252, - 114,0,0,72,139,195,235,2,51,192,72,131,196,32,91,195,204,204,204,72,137,92,36,8,72,137,108,36,16,72,137,116,36,24,87,65,84,65,85,65,86,65,87,72,131,236,32,76,139,100,36,112,77,139,233,73,139,216,76,139,242,72,139,249,73,131,36,36,0,73,199,1, - 1,0,0,0,72,133,210,116,7,72,137,26,73,131,198,8,64,50,237,128,63,34,76,139,255,117,15,64,132,237,64,182,34,64,15,148,197,72,255,199,235,58,73,255,4,36,72,133,219,116,7,138,7,136,3,72,255,195,15,190,55,72,255,199,139,206,232,44,142,0,0,133,192, - 116,20,73,255,4,36,72,133,219,116,7,138,7,136,3,72,255,195,73,141,127,2,64,132,246,116,28,64,132,237,117,170,64,128,254,32,116,6,64,128,254,9,117,158,72,133,219,116,9,198,67,255,0,235,3,72,255,207,64,50,246,138,7,132,192,15,132,214,0,0,0,60, - 32,116,4,60,9,117,7,72,255,199,138,7,235,241,132,192,15,132,191,0,0,0,77,133,246,116,7,73,137,30,73,131,198,8,73,255,69,0,186,1,0,0,0,51,192,235,5,72,255,199,255,192,138,15,128,249,92,116,244,128,249,34,117,49,132,194,117,24,64,132,246,116,10, - 56,79,1,117,5,72,255,199,235,9,51,210,64,132,246,64,15,148,198,209,232,235,17,255,200,72,133,219,116,6,198,3,92,72,255,195,73,255,4,36,133,192,117,235,138,7,132,192,116,70,64,132,246,117,8,60,32,116,61,60,9,116,57,133,210,116,45,72,133,219,116, - 5,136,3,72,255,195,15,190,15,232,68,141,0,0,133,192,116,19,73,255,4,36,72,255,199,72,133,219,116,7,138,7,136,3,72,255,195,73,255,4,36,72,255,199,233,101,255,255,255,72,133,219,116,6,198,3,0,72,255,195,73,255,4,36,233,32,255,255,255,77,133,246, - 116,4,73,131,38,0,73,255,69,0,72,139,92,36,80,72,139,108,36,88,72,139,116,36,96,72,131,196,32,65,95,65,94,65,93,65,92,95,195,204,204,204,72,133,201,117,4,131,200,255,195,72,139,65,16,72,57,1,117,18,72,139,5,235,169,1,0,72,137,1,72,137,65,8,72, - 137,65,16,51,192,195,204,72,137,84,36,16,72,137,76,36,8,85,72,139,236,72,131,236,64,72,141,69,16,72,137,69,232,76,141,77,40,72,141,69,24,72,137,69,240,76,141,69,232,184,2,0,0,0,72,141,85,224,72,141,77,32,137,69,40,137,69,224,232,42,3,0,0,72, - 131,196,64,93,195,76,139,220,73,137,75,8,72,131,236,56,73,199,67,240,254,255,255,255,73,141,67,8,73,137,67,232,184,2,0,0,0,137,68,36,80,137,68,36,88,77,141,75,24,77,141,67,232,73,141,83,32,73,141,75,16,232,35,3,0,0,144,72,131,196,56,195,204, - 72,139,209,72,141,13,182,182,1,0,233,101,255,255,255,204,72,137,92,36,8,72,137,108,36,16,72,137,116,36,24,87,65,86,65,87,72,131,236,32,72,139,1,51,237,76,139,249,72,139,16,72,133,210,15,132,104,1,0,0,76,139,21,13,169,1,0,65,139,202,73,139,242, - 72,51,50,131,225,63,77,139,202,72,211,206,76,51,74,8,73,139,218,72,51,90,16,73,211,201,72,211,203,76,59,203,15,133,167,0,0,0,72,43,222,184,0,2,0,0,72,193,251,3,72,59,216,72,139,251,72,15,71,248,141,69,32,72,3,251,72,15,68,248,72,59,251,114,30, - 68,141,69,8,72,139,215,72,139,206,232,17,140,0,0,51,201,76,139,240,232,195,111,0,0,77,133,246,117,40,72,141,123,4,65,184,8,0,0,0,72,139,215,72,139,206,232,237,139,0,0,51,201,76,139,240,232,159,111,0,0,77,133,246,15,132,202,0,0,0,76,139,21,111, - 168,1,0,77,141,12,222,73,141,28,254,73,139,246,72,139,203,73,43,201,72,131,193,7,72,193,233,3,76,59,203,72,15,71,205,72,133,201,116,16,73,139,194,73,139,249,243,72,171,76,139,21,58,168,1,0,65,184,64,0,0,0,73,141,121,8,65,139,200,65,139,194,131, - 224,63,43,200,73,139,71,8,72,139,16,65,139,192,72,211,202,73,51,210,73,137,17,72,139,21,11,168,1,0,139,202,131,225,63,43,193,138,200,73,139,7,72,211,206,72,51,242,72,139,8,72,137,49,65,139,200,72,139,21,233,167,1,0,139,194,131,224,63,43,200, - 73,139,7,72,211,207,72,51,250,72,139,16,72,137,122,8,72,139,21,203,167,1,0,139,194,131,224,63,68,43,192,73,139,7,65,138,200,72,211,203,72,51,218,72,139,8,51,192,72,137,89,16,235,3,131,200,255,72,139,92,36,64,72,139,108,36,72,72,139,116,36,80, - 72,131,196,32,65,95,65,94,95,195,72,137,92,36,8,72,137,108,36,16,72,137,116,36,24,87,65,86,65,87,72,131,236,32,72,139,1,72,139,241,72,139,16,72,133,210,117,8,131,200,255,233,217,0,0,0,76,139,5,91,167,1,0,65,139,200,73,139,248,72,51,58,131,225, - 63,72,211,207,73,139,216,72,51,90,8,72,211,203,72,141,71,255,72,131,248,253,15,135,169,0,0,0,65,139,200,77,139,240,131,225,63,76,139,255,72,139,235,72,131,235,8,72,59,223,114,95,72,139,3,73,59,198,116,239,73,51,192,76,137,51,72,211,200,73,186, - 112,72,218,86,150,62,241,133,255,21,19,120,1,0,76,139,5,244,166,1,0,72,139,6,65,139,200,131,225,63,77,139,200,72,139,16,73,139,192,76,51,10,72,51,66,8,73,211,201,72,211,200,77,59,207,117,5,72,59,197,116,166,77,139,249,73,139,249,72,139,232,72, - 139,216,235,152,72,131,255,255,116,15,72,139,207,232,207,109,0,0,76,139,5,168,166,1,0,72,139,6,72,139,8,76,137,1,72,139,6,72,139,8,76,137,65,8,72,139,6,72,139,8,76,137,65,16,51,192,72,139,92,36,64,72,139,108,36,72,72,139,116,36,80,72,131,196, - 32,65,95,65,94,95,195,72,137,92,36,8,76,137,76,36,32,87,72,131,236,32,73,139,217,73,139,248,139,10,232,244,87,0,0,144,72,139,207,232,11,253,255,255,139,248,139,11,232,254,87,0,0,139,199,72,139,92,36,48,72,131,196,32,95,195,204,72,137,92,36,8, - 76,137,76,36,32,87,72,131,236,32,73,139,217,73,139,248,139,10,232,184,87,0,0,144,72,139,207,232,127,254,255,255,139,248,139,11,232,194,87,0,0,139,199,72,139,92,36,48,72,131,196,32,95,195,204,233,71,0,0,0,204,204,204,72,131,236,56,72,199,68,36, - 32,254,255,255,255,72,141,13,124,179,1,0,232,159,0,0,0,144,72,141,13,119,179,1,0,232,174,0,0,0,144,72,139,13,122,179,1,0,232,189,0,0,0,72,139,13,102,179,1,0,72,131,196,56,233,241,0,0,0,204,72,137,92,36,8,87,72,131,236,32,51,255,72,57,61,57,179, - 1,0,116,4,51,192,235,79,232,150,97,0,0,232,245,138,0,0,72,139,216,72,133,192,117,12,51,201,232,154,108,0,0,131,200,255,235,49,72,139,203,232,245,0,0,0,72,133,192,117,5,131,207,255,235,14,72,137,5,20,179,1,0,72,137,5,245,178,1,0,51,201,232,110, - 108,0,0,72,139,203,232,102,108,0,0,139,199,72,139,92,36,48,72,131,196,32,95,195,204,72,131,236,40,72,139,9,72,59,13,226,178,1,0,116,5,232,35,0,0,0,72,131,196,40,195,204,204,72,131,236,40,72,139,9,72,59,13,190,178,1,0,116,5,232,75,0,0,0,72,131, - 196,40,195,204,204,72,133,201,116,59,72,137,92,36,8,87,72,131,236,32,72,139,1,72,139,217,72,139,249,235,15,72,139,200,232,254,107,0,0,72,141,127,8,72,139,7,72,133,192,117,236,72,139,203,232,234,107,0,0,72,139,92,36,48,72,131,196,32,95,195,204, - 204,204,72,133,201,116,59,72,137,92,36,8,87,72,131,236,32,72,139,1,72,139,217,72,139,249,235,15,72,139,200,232,186,107,0,0,72,141,127,8,72,139,7,72,133,192,117,236,72,139,203,232,166,107,0,0,72,139,92,36,48,72,131,196,32,95,195,204,204,204,72, - 139,196,72,137,88,8,72,137,104,16,72,137,112,24,72,137,120,32,65,86,72,131,236,48,72,139,241,51,201,76,139,198,138,22,235,37,128,250,61,72,141,65,1,72,15,68,193,72,139,200,72,131,200,255,72,255,192,65,128,60,0,0,117,246,73,255,192,76,3,192,65, - 138,16,132,210,117,215,72,255,193,186,8,0,0,0,232,249,121,0,0,72,139,216,72,133,192,117,11,51,201,232,46,107,0,0,51,192,235,114,76,139,243,138,6,132,192,116,95,72,131,205,255,72,255,197,128,60,46,0,117,247,72,255,197,60,61,116,53,186,1,0,0,0, - 72,139,205,232,188,121,0,0,72,139,248,72,133,192,116,37,76,139,198,72,139,213,72,139,200,232,74,79,0,0,51,201,133,192,117,71,73,137,62,73,131,198,8,232,216,106,0,0,72,3,245,235,172,72,139,203,232,171,254,255,255,51,201,232,196,106,0,0,235,141, - 51,201,232,187,106,0,0,72,139,195,72,139,92,36,64,72,139,108,36,72,72,139,116,36,80,72,139,124,36,88,72,131,196,48,65,94,195,72,131,100,36,32,0,69,51,201,69,51,192,51,210,232,194,107,0,0,204,204,72,59,202,116,59,72,137,92,36,8,87,72,131,236, - 32,72,139,250,72,139,217,72,139,3,72,133,192,116,16,73,186,112,72,218,86,150,62,241,133,255,21,83,116,1,0,72,131,195,8,72,59,223,117,223,72,139,92,36,48,72,131,196,32,95,195,204,204,204,72,137,92,36,8,87,72,131,236,32,72,139,250,72,139,217,72, - 59,202,116,37,72,139,3,72,133,192,116,20,73,186,112,48,82,94,71,39,5,211,255,21,15,116,1,0,133,192,117,11,72,131,195,8,72,59,223,235,217,51,192,72,139,92,36,48,72,131,196,32,95,195,204,184,99,115,109,224,59,200,116,3,51,192,195,139,200,233,1, - 0,0,0,204,72,137,92,36,8,72,137,108,36,16,72,137,116,36,24,87,72,131,236,32,72,139,242,139,249,232,142,86,0,0,69,51,201,72,139,216,72,133,192,116,31,72,139,8,72,139,193,76,141,129,192,0,0,0,73,59,200,116,13,57,56,116,32,72,131,192,16,73,59,192, - 117,243,51,192,72,139,92,36,48,72,139,108,36,56,72,139,116,36,64,72,131,196,32,95,195,72,133,192,116,228,76,139,64,8,77,133,192,116,219,73,131,248,5,117,10,76,137,72,8,65,141,64,252,235,205,73,131,248,1,117,5,131,200,255,235,194,72,139,107,8, - 72,137,115,8,131,120,4,8,15,133,196,0,0,0,72,131,193,48,72,141,145,144,0,0,0,235,8,76,137,73,8,72,131,193,16,72,59,202,117,243,129,56,141,0,0,192,139,123,16,116,122,129,56,142,0,0,192,116,107,129,56,143,0,0,192,116,92,129,56,144,0,0,192,116, - 77,129,56,145,0,0,192,116,62,129,56,146,0,0,192,116,47,129,56,147,0,0,192,116,32,129,56,180,2,0,192,116,17,129,56,181,2,0,192,139,215,117,64,186,141,0,0,0,235,54,186,142,0,0,0,235,47,186,133,0,0,0,235,40,186,138,0,0,0,235,33,186,132,0,0,0,235, - 26,186,129,0,0,0,235,19,186,134,0,0,0,235,12,186,131,0,0,0,235,5,186,130,0,0,0,137,83,16,73,186,112,51,211,48,79,31,156,139,185,8,0,0,0,73,139,192,255,21,135,114,1,0,137,123,16,235,26,76,137,72,8,73,186,112,115,215,80,73,134,193,198,139,72,4, - 73,139,192,255,21,104,114,1,0,72,137,107,8,233,2,255,255,255,204,204,204,72,131,236,56,198,68,36,32,0,232,6,0,0,0,72,131,196,56,195,204,64,83,72,131,236,48,51,192,68,139,209,72,133,210,117,25,232,3,118,0,0,187,22,0,0,0,137,24,232,71,105,0,0, - 139,195,72,131,196,48,91,195,77,133,192,116,226,15,182,76,36,96,102,137,2,72,141,65,1,76,59,192,119,12,232,212,117,0,0,187,34,0,0,0,235,207,65,141,65,254,187,34,0,0,0,59,195,119,184,136,76,36,96,65,139,202,72,131,196,48,91,233,3,0,0,0,204,204, - 204,72,137,92,36,8,72,137,108,36,16,72,137,116,36,24,87,65,86,65,87,72,131,236,32,69,51,255,65,139,233,73,139,240,72,139,218,68,139,209,76,139,218,65,139,255,68,56,124,36,96,116,17,65,141,71,45,65,247,218,102,137,2,141,120,212,76,141,90,2,77, - 139,195,51,210,65,139,194,247,245,65,139,194,77,139,203,139,202,51,210,247,245,131,249,9,73,141,83,2,68,139,208,184,87,0,0,0,68,141,112,217,102,65,15,70,198,72,255,199,102,3,193,102,65,137,3,69,133,210,116,8,76,139,218,72,59,254,114,190,72,59, - 254,114,25,102,68,137,59,232,20,117,0,0,187,34,0,0,0,137,24,232,88,104,0,0,139,195,235,35,102,68,137,58,65,15,183,0,65,15,183,9,102,65,137,1,73,131,233,2,102,65,137,8,73,131,192,2,77,59,193,114,227,51,192,72,139,92,36,64,72,139,108,36,72,72, - 139,116,36,80,72,131,196,32,65,95,65,94,95,195,72,131,236,40,131,61,93,183,1,0,0,117,45,72,133,201,117,26,232,177,116,0,0,199,0,22,0,0,0,232,246,103,0,0,184,255,255,255,127,72,131,196,40,195,72,133,210,116,225,72,131,196,40,233,66,1,0,0,69,51, - 192,72,131,196,40,233,2,0,0,0,204,204,72,137,92,36,8,72,137,108,36,16,72,137,116,36,24,87,65,86,65,87,72,131,236,64,72,139,250,72,139,217,72,133,201,117,26,232,88,116,0,0,199,0,22,0,0,0,232,157,103,0,0,184,255,255,255,127,233,219,0,0,0,72,133, - 255,116,225,73,139,208,72,141,76,36,32,232,37,1,0,0,72,139,76,36,40,72,131,185,56,1,0,0,0,117,18,72,139,215,72,139,203,232,203,0,0,0,139,240,233,147,0,0,0,65,190,0,1,0,0,76,141,61,211,8,1,0,15,183,3,72,141,91,2,102,65,59,198,115,26,15,182,208, - 65,246,68,87,2,1,116,10,72,139,129,16,1,0,0,138,20,2,15,182,194,235,18,72,141,84,36,40,15,183,200,232,99,133,0,0,72,139,76,36,40,15,183,232,15,183,7,139,245,72,131,199,2,102,65,59,198,115,26,15,182,208,65,246,68,87,2,1,116,10,72,139,129,16,1, - 0,0,138,20,2,15,182,194,235,18,72,141,84,36,40,15,183,200,232,37,133,0,0,72,139,76,36,40,15,183,192,43,240,117,8,133,237,15,133,122,255,255,255,128,124,36,56,0,116,12,72,139,68,36,32,131,160,168,3,0,0,253,139,198,72,139,92,36,96,72,139,108,36, - 104,72,139,116,36,112,72,131,196,64,65,95,65,94,95,195,204,204,204,76,139,218,76,139,209,69,15,183,2,77,141,82,2,65,15,183,19,77,141,91,2,65,141,64,191,131,248,25,69,141,72,32,141,66,191,69,15,71,200,141,74,32,131,248,25,65,139,193,15,71,202, - 43,193,117,5,69,133,201,117,201,195,204,204,72,137,92,36,8,72,137,116,36,16,87,72,131,236,32,198,65,24,0,72,139,249,72,141,113,8,72,133,210,116,5,15,16,2,235,16,131,61,129,181,1,0,0,117,13,15,16,5,176,164,1,0,243,15,127,6,235,78,232,81,80,0, - 0,72,137,7,72,139,214,72,139,136,144,0,0,0,72,137,14,72,139,136,136,0,0,0,72,137,79,16,72,139,200,232,50,133,0,0,72,139,15,72,141,87,16,232,90,133,0,0,72,139,15,139,129,168,3,0,0,168,2,117,13,131,200,2,137,129,168,3,0,0,198,71,24,1,72,139,92, - 36,48,72,139,199,72,139,116,36,56,72,131,196,32,95,195,204,72,137,92,36,8,72,137,124,36,16,85,72,139,236,72,131,236,112,72,131,101,192,0,131,61,242,180,1,0,0,198,69,208,0,198,69,232,0,198,69,240,0,198,69,248,0,117,16,15,16,5,17,164,1,0,198,69, - 232,1,243,15,127,69,216,72,131,101,184,0,72,141,85,176,72,137,77,176,65,177,1,72,141,77,192,65,184,10,0,0,0,232,57,1,0,0,128,125,232,2,139,248,117,11,72,139,77,192,131,161,168,3,0,0,253,128,125,240,0,116,15,139,93,236,72,141,77,192,232,44,0, - 0,0,137,88,32,128,125,248,0,116,15,139,93,244,72,141,77,192,232,23,0,0,0,137,88,36,76,141,92,36,112,139,199,73,139,91,16,73,139,123,24,73,139,227,93,195,64,87,72,131,236,32,72,131,57,0,72,139,249,117,73,72,137,92,36,56,255,21,14,117,1,0,128, - 127,16,0,137,68,36,48,117,12,51,210,198,71,16,1,72,137,87,8,235,4,72,139,87,8,72,141,76,36,48,232,138,81,0,0,139,76,36,48,72,139,216,72,137,7,255,21,34,118,1,0,72,133,219,72,139,92,36,56,116,9,72,139,7,72,131,196,32,95,195,232,166,13,0,0,204, - 204,204,204,204,204,204,204,204,204,72,137,92,36,8,72,137,116,36,16,87,72,131,236,32,72,139,249,232,121,255,255,255,72,141,87,24,72,139,200,72,139,240,76,139,128,144,0,0,0,76,137,2,76,139,128,136,0,0,0,76,137,71,32,76,139,71,8,232,1,132,0,0, - 76,139,71,8,72,141,87,32,72,139,206,232,41,132,0,0,139,134,168,3,0,0,168,2,117,13,131,200,2,137,134,168,3,0,0,198,71,40,2,72,139,92,36,48,72,139,116,36,56,72,131,196,32,95,195,204,204,72,137,92,36,24,72,137,76,36,8,85,86,87,65,84,65,85,65,86, - 65,87,72,129,236,160,0,0,0,76,139,34,51,237,65,15,182,241,69,139,248,76,137,164,36,144,0,0,0,72,139,250,77,133,228,117,18,232,155,112,0,0,199,0,22,0,0,0,232,224,99,0,0,235,50,69,133,255,116,69,65,141,64,254,131,248,34,118,60,72,137,76,36,40, - 69,51,201,198,65,48,1,69,51,192,199,65,44,22,0,0,0,51,210,51,201,72,137,108,36,32,232,120,101,0,0,72,139,79,8,72,133,201,15,132,93,6,0,0,72,139,7,72,137,1,233,82,6,0,0,65,15,183,28,36,73,141,68,36,2,72,137,2,68,139,245,64,56,105,40,117,20,232, - 217,254,255,255,235,13,72,139,7,15,183,24,72,131,192,2,72,137,7,186,8,0,0,0,15,183,203,232,29,132,0,0,133,192,117,226,139,198,185,253,255,0,0,131,206,2,102,131,251,45,15,69,240,141,67,213,102,133,193,117,13,72,139,7,15,183,24,72,131,192,2,72, - 137,7,199,132,36,232,0,0,0,112,10,0,0,184,102,10,0,0,199,68,36,48,230,10,0,0,185,48,0,0,0,199,68,36,52,240,10,0,0,186,16,255,0,0,199,68,36,56,102,11,0,0,65,184,96,6,0,0,199,68,36,60,112,11,0,0,68,141,88,128,199,68,36,64,102,12,0,0,65,185,240, - 6,0,0,199,68,36,68,112,12,0,0,65,186,102,9,0,0,199,68,36,72,230,12,0,0,199,68,36,76,240,12,0,0,199,68,36,80,102,13,0,0,199,68,36,84,112,13,0,0,199,68,36,88,80,14,0,0,199,68,36,92,90,14,0,0,199,68,36,96,208,14,0,0,199,68,36,100,218,14,0,0,199, - 68,36,104,32,15,0,0,199,68,36,108,42,15,0,0,199,68,36,112,64,16,0,0,199,68,36,116,74,16,0,0,199,68,36,120,224,23,0,0,199,68,36,124,234,23,0,0,199,132,36,128,0,0,0,16,24,0,0,199,132,36,132,0,0,0,26,255,0,0,199,132,36,136,0,0,0,25,0,0,0,65,247, - 199,239,255,255,255,15,133,66,2,0,0,102,59,217,15,130,193,1,0,0,102,131,251,58,115,10,15,183,195,43,193,233,172,1,0,0,102,59,218,15,131,148,1,0,0,102,65,59,216,15,130,158,1,0,0,185,106,6,0,0,102,59,217,115,11,15,183,195,65,43,192,233,132,1,0, - 0,102,65,59,217,15,130,127,1,0,0,185,250,6,0,0,102,59,217,115,11,15,183,195,65,43,193,233,101,1,0,0,102,65,59,218,15,130,96,1,0,0,185,112,9,0,0,102,59,217,115,11,15,183,195,65,43,194,233,70,1,0,0,102,65,59,219,15,130,65,1,0,0,185,240,9,0,0,102, - 59,217,115,11,15,183,195,65,43,195,233,39,1,0,0,102,59,216,15,130,35,1,0,0,102,59,156,36,232,0,0,0,115,13,15,183,195,45,102,10,0,0,233,7,1,0,0,139,76,36,48,102,59,217,15,130,255,0,0,0,102,59,92,36,52,15,130,57,255,255,255,139,76,36,56,102,59, - 217,15,130,231,0,0,0,102,59,92,36,60,15,130,33,255,255,255,139,76,36,64,102,59,217,15,130,207,0,0,0,102,59,92,36,68,15,130,9,255,255,255,139,76,36,72,102,59,217,15,130,183,0,0,0,102,59,92,36,76,15,130,241,254,255,255,139,76,36,80,102,59,217, - 15,130,159,0,0,0,102,59,92,36,84,15,130,217,254,255,255,139,76,36,88,102,59,217,15,130,135,0,0,0,102,59,92,36,92,15,130,193,254,255,255,139,76,36,96,102,59,217,114,115,102,59,92,36,100,15,130,173,254,255,255,139,76,36,104,102,59,217,114,95,102, - 59,92,36,108,15,130,153,254,255,255,139,76,36,112,102,59,217,114,75,102,59,92,36,116,15,130,133,254,255,255,139,76,36,120,102,59,217,114,55,102,59,92,36,124,15,130,113,254,255,255,139,140,36,128,0,0,0,15,183,195,102,43,193,102,131,248,9,119, - 25,233,89,254,255,255,102,59,156,36,132,0,0,0,115,10,15,183,195,43,194,131,248,255,117,38,139,148,36,136,0,0,0,15,183,203,141,65,191,59,194,141,65,159,118,8,59,194,15,135,182,0,0,0,59,194,119,3,131,193,224,141,65,201,69,51,210,133,192,15,133, - 164,0,0,0,72,139,15,65,185,223,255,0,0,15,183,17,76,141,65,2,76,137,7,141,66,168,102,65,133,193,116,105,69,133,255,72,137,15,65,141,66,8,65,15,69,199,68,139,248,102,133,210,116,24,102,57,17,116,19,232,174,108,0,0,199,0,22,0,0,0,232,243,95,0, - 0,69,51,210,51,210,131,200,255,65,247,247,65,187,97,0,0,0,189,96,6,0,0,68,139,200,65,189,16,255,0,0,69,141,99,207,102,65,59,220,15,130,197,1,0,0,102,131,251,58,115,49,15,183,203,65,43,204,233,175,1,0,0,65,15,183,24,73,141,64,2,72,137,7,184,16, - 0,0,0,69,133,255,65,15,69,199,68,139,248,235,169,69,51,210,184,10,0,0,0,235,234,102,65,59,221,15,131,111,1,0,0,102,59,221,15,130,123,1,0,0,184,106,6,0,0,102,59,216,115,10,15,183,203,43,205,233,98,1,0,0,184,240,6,0,0,102,59,216,15,130,89,1,0, - 0,141,72,10,102,59,217,115,10,15,183,203,43,200,233,66,1,0,0,184,102,9,0,0,102,59,216,15,130,57,1,0,0,141,72,10,102,59,217,114,224,141,65,118,102,59,216,15,130,37,1,0,0,141,72,10,102,59,217,114,204,141,65,118,102,59,216,15,130,17,1,0,0,102,59, - 156,36,232,0,0,0,114,182,139,68,36,48,102,59,216,15,130,250,0,0,0,102,59,92,36,52,114,162,139,68,36,56,102,59,216,15,130,230,0,0,0,102,59,92,36,60,114,142,139,68,36,64,102,59,216,15,130,210,0,0,0,102,59,92,36,68,15,130,118,255,255,255,139,68, - 36,72,102,59,216,15,130,186,0,0,0,102,59,92,36,76,15,130,94,255,255,255,139,68,36,80,102,59,216,15,130,162,0,0,0,102,59,92,36,84,15,130,70,255,255,255,139,68,36,88,102,59,216,15,130,138,0,0,0,102,59,92,36,92,15,130,46,255,255,255,139,68,36,96, - 102,59,216,114,118,102,59,92,36,100,15,130,26,255,255,255,139,68,36,104,102,59,216,114,98,102,59,92,36,108,15,130,6,255,255,255,139,68,36,112,102,59,216,114,78,102,59,92,36,116,15,130,242,254,255,255,139,68,36,120,102,59,216,114,58,102,59,92, - 36,124,15,130,222,254,255,255,139,148,36,128,0,0,0,15,183,195,102,43,194,102,131,248,9,119,28,15,183,203,43,202,235,16,102,59,156,36,132,0,0,0,115,11,15,183,203,65,43,205,131,249,255,117,52,15,183,203,131,249,65,114,5,131,249,90,118,11,65,59, - 203,114,31,102,131,251,122,119,25,15,183,195,102,65,43,195,102,59,132,36,136,0,0,0,119,3,131,193,224,131,193,201,235,3,131,201,255,76,139,7,65,59,207,115,56,65,15,183,24,65,139,198,65,15,175,199,141,20,8,65,139,202,59,208,65,139,194,15,146,193, - 69,59,241,68,139,242,15,151,192,11,200,73,141,64,2,193,225,2,131,201,8,72,137,7,11,241,233,189,253,255,255,76,139,172,36,224,0,0,0,73,141,64,254,76,139,164,36,144,0,0,0,189,2,0,0,0,72,137,7,102,133,219,116,21,102,57,24,116,16,232,18,106,0,0, - 199,0,22,0,0,0,232,87,93,0,0,64,246,198,8,117,22,72,139,71,8,76,137,39,72,133,192,116,3,76,137,32,51,192,233,146,0,0,0,65,184,0,0,0,128,69,141,72,255,64,246,198,4,116,9,184,1,0,0,0,139,206,235,30,64,246,198,1,116,89,64,132,245,116,7,69,59,240, - 118,84,235,5,69,59,241,118,80,185,1,0,0,0,139,198,35,238,65,198,69,48,1,65,199,69,44,34,0,0,0,133,200,117,6,65,131,206,255,235,48,72,139,87,8,133,237,116,16,72,133,210,116,6,72,139,15,72,137,10,65,139,192,235,42,72,133,210,116,6,72,139,15,72, - 137,10,65,139,193,235,26,64,132,245,116,3,65,247,222,72,139,87,8,72,133,210,116,6,72,139,15,72,137,10,65,139,198,72,139,156,36,240,0,0,0,72,129,196,160,0,0,0,65,95,65,94,65,93,65,92,95,94,93,195,204,204,199,68,36,16,0,0,0,0,139,68,36,16,233, - 99,91,0,0,204,204,204,233,159,125,0,0,204,204,204,72,131,236,40,232,155,70,0,0,72,139,64,24,72,133,192,116,18,73,186,112,72,218,86,150,62,241,133,255,21,46,101,1,0,235,0,232,67,5,0,0,144,204,204,15,183,2,68,15,183,1,68,43,192,117,25,72,43,202, - 102,133,192,116,17,72,131,194,2,15,183,2,68,15,183,4,17,68,43,192,116,234,65,139,192,65,193,232,31,247,216,193,232,31,65,43,192,195,204,204,204,139,5,174,147,1,0,76,139,193,72,139,209,131,248,5,15,140,130,0,0,0,65,246,192,1,116,17,51,201,102, - 57,10,15,132,249,0,0,0,72,131,194,2,235,241,131,225,31,184,32,0,0,0,72,43,193,72,247,217,77,27,201,51,201,76,35,200,73,209,233,75,141,4,72,76,59,192,116,14,102,57,10,116,9,72,131,194,2,72,59,208,117,242,73,43,208,72,209,250,73,59,209,15,133, - 186,0,0,0,73,141,20,80,197,233,239,210,197,237,117,10,197,253,215,193,133,192,117,6,72,131,194,32,235,238,197,248,119,102,57,10,15,132,142,0,0,0,72,131,194,2,235,241,131,248,1,124,118,65,246,192,1,116,13,51,201,102,57,10,116,118,72,131,194,2, - 235,245,131,225,15,184,16,0,0,0,72,43,193,72,247,217,77,27,201,51,201,76,35,200,73,209,233,75,141,4,72,76,59,192,116,14,102,57,10,116,9,72,131,194,2,72,59,208,117,242,73,43,208,72,209,250,73,59,209,117,59,73,141,20,80,15,87,201,102,15,111,193, - 102,15,117,2,102,15,215,192,133,192,117,6,72,131,194,16,235,234,102,57,10,116,19,72,131,194,2,235,245,51,201,102,57,10,116,6,72,131,194,2,235,245,73,43,208,72,209,250,72,139,194,195,204,204,204,139,5,130,146,1,0,76,139,210,76,139,193,131,248, - 5,15,140,204,0,0,0,65,246,192,1,116,41,72,141,4,81,72,139,209,72,59,200,15,132,161,1,0,0,51,201,102,57,10,15,132,150,1,0,0,72,131,194,2,72,59,208,117,238,233,136,1,0,0,131,225,31,184,32,0,0,0,72,43,193,73,139,208,72,247,217,77,27,219,76,35,216, - 73,209,235,77,59,211,77,15,66,218,51,201,75,141,4,88,76,59,192,116,14,102,57,10,116,9,72,131,194,2,72,59,208,117,242,73,43,208,72,209,250,73,59,211,15,133,69,1,0,0,77,141,12,80,73,139,194,73,43,195,72,131,224,224,72,3,194,73,141,20,64,76,59, - 202,116,29,197,241,239,201,196,193,117,117,9,197,253,215,193,133,192,197,248,119,117,9,73,131,193,32,76,59,202,117,227,75,141,4,80,235,10,102,65,57,9,116,9,73,131,193,2,76,59,200,117,241,73,139,209,233,235,0,0,0,131,248,1,15,140,198,0,0,0,65, - 246,192,1,116,41,72,141,4,81,73,139,208,76,59,192,15,132,204,0,0,0,51,201,102,57,10,15,132,193,0,0,0,72,131,194,2,72,59,208,117,238,233,179,0,0,0,131,225,15,184,16,0,0,0,72,43,193,73,139,208,72,247,217,77,27,219,76,35,216,73,209,235,77,59,211, - 77,15,66,218,51,201,75,141,4,88,76,59,192,116,14,102,57,10,116,9,72,131,194,2,72,59,208,117,242,73,43,208,72,209,250,73,59,211,117,116,73,139,194,77,141,12,80,73,43,195,15,87,201,72,131,224,240,72,3,194,73,141,20,64,235,21,102,15,111,193,102, - 65,15,117,1,102,15,215,192,133,192,117,9,73,131,193,16,76,59,202,117,230,75,141,4,80,235,14,102,65,57,9,15,132,55,255,255,255,73,131,193,2,76,59,200,117,237,233,41,255,255,255,72,141,4,81,73,139,208,76,59,192,116,16,51,201,102,57,10,116,9,72, - 131,194,2,72,59,208,117,242,73,43,208,72,209,250,72,139,194,195,204,204,72,137,92,36,8,72,137,124,36,16,85,72,139,236,72,131,236,112,72,131,101,192,0,131,61,58,168,1,0,0,198,69,208,0,198,69,232,0,198,69,240,0,198,69,248,0,117,16,15,16,5,89,151, - 1,0,198,69,232,1,243,15,127,69,216,72,137,77,176,72,137,85,184,72,133,210,116,3,72,137,10,65,177,1,72,141,85,176,72,141,77,192,232,128,244,255,255,128,125,232,2,139,248,117,11,72,139,77,192,131,161,168,3,0,0,253,128,125,240,0,116,15,139,93,236, - 72,141,77,192,232,115,243,255,255,137,88,32,128,125,248,0,116,15,139,93,244,72,141,77,192,232,94,243,255,255,137,88,36,76,141,92,36,112,139,199,73,139,91,16,73,139,123,24,73,139,227,93,195,204,204,204,204,204,204,204,184,77,90,0,0,102,57,1,117, - 30,72,99,81,60,72,3,209,129,58,80,69,0,0,117,15,51,192,185,11,2,0,0,102,57,74,24,15,148,192,195,51,192,195,204,204,204,204,204,76,99,65,60,69,51,201,76,3,193,76,139,210,65,15,183,64,20,69,15,183,88,6,72,131,192,24,73,3,192,69,133,219,116,30, - 139,80,12,76,59,210,114,10,139,72,8,3,202,76,59,209,114,14,65,255,193,72,131,192,40,69,59,203,114,226,51,192,195,204,204,204,204,204,204,204,204,204,204,204,204,72,137,92,36,8,87,72,131,236,32,72,139,217,72,141,61,92,111,255,255,72,139,207,232, - 100,255,255,255,133,192,116,34,72,43,223,72,139,211,72,139,207,232,130,255,255,255,72,133,192,116,15,139,64,36,193,232,31,247,208,131,224,1,235,2,51,192,72,139,92,36,48,72,131,196,32,95,195,204,204,204,204,204,204,204,204,204,102,102,15,31,132, - 0,0,0,0,0,72,137,76,36,8,72,137,84,36,24,68,137,68,36,16,73,199,193,32,5,147,25,235,8,204,204,204,204,204,204,102,144,195,204,204,204,204,204,204,102,15,31,132,0,0,0,0,0,195,204,204,204,72,139,5,253,95,1,0,72,141,21,142,185,255,255,72,59,194, - 116,35,101,72,139,4,37,48,0,0,0,72,139,137,152,0,0,0,72,59,72,16,114,6,72,59,72,8,118,7,185,13,0,0,0,205,41,195,204,72,131,236,40,232,7,91,0,0,72,133,192,116,10,185,22,0,0,0,232,40,91,0,0,246,5,181,142,1,0,2,116,42,185,23,0,0,0,255,21,144,103, - 1,0,133,192,116,7,185,7,0,0,0,205,41,65,184,1,0,0,0,186,21,0,0,64,65,141,72,2,232,33,87,0,0,185,3,0,0,0,232,11,222,255,255,204,204,204,72,131,236,40,72,141,13,145,1,0,0,232,124,120,0,0,137,5,106,142,1,0,131,248,255,116,37,72,141,21,26,156,1, - 0,139,200,232,59,121,0,0,133,192,116,14,199,5,125,156,1,0,254,255,255,255,176,1,235,7,232,8,0,0,0,50,192,72,131,196,40,195,204,72,131,236,40,139,13,46,142,1,0,131,249,255,116,12,232,120,120,0,0,131,13,29,142,1,0,255,176,1,72,131,196,40,195,204, - 204,72,131,236,40,232,19,0,0,0,72,133,192,116,5,72,131,196,40,195,232,36,255,255,255,204,204,204,204,72,137,92,36,8,72,137,116,36,16,87,72,131,236,32,131,61,226,141,1,0,255,117,7,51,192,233,144,0,0,0,255,21,23,102,1,0,139,13,205,141,1,0,139, - 248,232,98,120,0,0,72,131,202,255,51,246,72,59,194,116,103,72,133,192,116,5,72,139,240,235,93,139,13,171,141,1,0,232,138,120,0,0,133,192,116,78,186,128,0,0,0,141,74,129,232,153,119,0,0,139,13,143,141,1,0,72,139,216,72,133,192,116,36,72,139,208, - 232,99,120,0,0,133,192,116,18,72,139,195,199,67,120,254,255,255,255,72,139,222,72,139,240,235,13,139,13,99,141,1,0,51,210,232,64,120,0,0,72,139,203,232,244,248,255,255,139,207,255,21,216,102,1,0,72,139,198,72,139,92,36,48,72,139,116,36,56,72, - 131,196,32,95,195,204,64,83,72,131,236,32,72,139,217,139,13,41,141,1,0,131,249,255,116,51,72,133,219,117,14,232,182,119,0,0,139,13,20,141,1,0,72,139,216,51,210,232,238,119,0,0,72,133,219,116,20,72,141,5,186,154,1,0,72,59,216,116,8,72,139,203, - 232,145,248,255,255,72,131,196,32,91,195,204,204,204,204,204,204,204,72,131,236,40,72,133,201,116,17,72,141,5,144,154,1,0,72,59,200,116,5,232,106,248,255,255,72,131,196,40,195,204,76,139,2,233,0,0,0,0,64,83,72,131,236,32,73,139,216,72,133,201, - 116,82,76,99,89,24,76,139,82,8,75,141,4,26,72,133,192,116,65,68,139,65,20,69,51,201,69,133,192,116,48,75,141,12,203,74,99,20,17,73,3,210,72,59,218,114,8,65,255,193,69,59,200,114,232,69,133,201,116,19,65,141,73,255,73,141,4,202,66,139,68,24,4, - 72,131,196,32,91,195,131,200,255,235,245,232,127,253,255,255,204,204,204,72,131,236,40,77,99,72,28,77,139,208,72,139,1,65,139,4,1,131,248,254,117,11,76,139,2,73,139,202,232,118,255,255,255,72,131,196,40,195,204,72,99,82,28,72,139,1,68,137,4, - 2,195,72,137,92,36,8,87,72,131,236,32,65,139,249,73,139,216,76,141,76,36,64,232,166,200,255,255,72,139,8,72,99,67,28,72,137,76,36,64,59,124,8,4,126,4,137,124,8,4,72,139,92,36,48,72,131,196,32,95,195,204,64,83,72,131,236,32,76,141,76,36,64,73, - 139,216,232,113,200,255,255,72,139,8,72,99,67,28,72,137,76,36,64,139,68,8,4,72,131,196,32,91,195,204,204,204,76,139,2,233,0,0,0,0,72,139,196,72,137,88,8,72,137,104,16,72,137,112,24,72,137,120,32,65,86,131,205,255,73,139,216,131,121,16,0,76,139, - 210,15,132,172,0,0,0,76,99,73,16,76,141,53,73,107,255,255,72,139,122,8,51,246,76,3,207,69,51,192,139,213,65,15,182,9,131,225,15,74,15,190,132,49,16,99,1,0,66,138,140,49,32,99,1,0,76,43,200,69,139,89,252,65,211,235,69,133,219,116,108,73,139,66, - 16,68,139,16,65,15,182,9,131,225,15,74,15,190,132,49,16,99,1,0,66,138,140,49,32,99,1,0,76,43,200,65,139,65,252,211,232,3,240,139,198,73,3,194,72,3,199,72,59,216,114,43,65,15,182,9,65,255,192,131,225,15,74,15,190,132,49,16,99,1,0,66,138,140,49, - 32,99,1,0,76,43,200,65,139,81,252,211,234,255,202,69,59,195,114,165,69,133,192,15,68,213,139,194,235,2,139,197,72,139,92,36,16,72,139,108,36,24,72,139,116,36,32,72,139,124,36,40,65,94,195,204,204,204,76,139,220,73,137,91,24,77,137,75,32,137, - 84,36,16,85,86,87,65,84,65,85,65,86,65,87,72,131,236,32,72,139,65,8,64,50,237,69,50,246,73,137,67,8,51,255,77,139,225,69,139,232,72,139,217,72,141,112,255,76,139,254,57,57,126,67,69,139,99,16,65,59,252,117,6,72,139,240,64,181,1,65,59,253,117, - 6,76,139,248,65,182,1,64,132,237,116,5,69,132,246,117,26,72,141,84,36,96,72,139,203,232,13,1,0,0,255,199,59,59,125,7,72,139,68,36,96,235,198,76,139,100,36,120,73,139,4,36,73,137,116,36,8,15,16,3,15,17,0,15,16,75,16,15,17,72,16,72,139,132,36, - 128,0,0,0,72,139,8,76,137,120,8,15,16,3,15,17,1,15,16,75,16,72,139,92,36,112,15,17,73,16,72,131,196,32,65,95,65,94,65,93,65,92,95,94,93,195,204,204,72,137,92,36,8,72,137,116,36,16,87,72,131,236,48,72,139,124,36,96,139,218,73,139,240,76,139,209, - 72,139,87,8,73,59,80,8,119,119,72,57,81,8,119,113,73,139,64,8,72,139,202,73,43,74,8,72,43,194,72,59,200,125,45,65,15,16,2,15,17,68,36,32,73,59,82,8,118,75,72,139,76,36,32,72,141,84,36,40,232,83,0,0,0,72,139,68,36,40,255,195,72,57,71,8,119,228, - 235,45,65,139,217,15,16,7,15,17,68,36,32,73,57,80,8,118,28,72,139,76,36,32,72,141,84,36,40,232,36,0,0,0,72,139,76,36,40,255,203,72,57,78,8,119,228,139,195,235,3,131,200,255,72,139,92,36,64,72,139,116,36,72,72,131,196,48,95,195,76,139,2,76,141, - 29,2,105,255,255,76,139,209,76,139,202,65,15,182,8,131,225,15,74,15,190,132,25,16,99,1,0,66,138,140,25,32,99,1,0,76,43,192,65,139,64,252,211,232,139,200,76,137,2,131,225,3,193,232,2,65,137,66,16,65,137,74,20,141,65,255,131,248,1,118,22,131,249, - 3,117,74,72,139,2,139,8,72,131,192,4,72,137,2,65,137,74,24,195,72,139,2,139,8,72,131,192,4,72,137,2,65,137,74,24,72,139,18,15,182,10,131,225,15,74,15,190,132,25,16,99,1,0,66,138,140,25,32,99,1,0,72,43,208,139,66,252,211,232,73,137,17,65,137, - 66,28,195,131,122,12,0,76,139,201,15,132,193,0,0,0,72,99,82,12,73,3,208,76,141,5,85,104,255,255,72,137,81,8,15,182,10,131,225,15,74,15,190,132,1,16,99,1,0,66,138,140,1,32,99,1,0,72,43,208,139,66,252,211,232,73,137,81,8,65,137,1,73,137,81,16, - 15,182,10,131,225,15,74,15,190,132,1,16,99,1,0,66,138,140,1,32,99,1,0,72,43,208,139,66,252,211,232,73,137,81,8,65,137,65,24,15,182,10,131,225,15,74,15,190,132,1,16,99,1,0,66,138,140,1,32,99,1,0,72,43,208,139,66,252,211,232,73,137,81,8,65,137, - 65,28,15,182,10,131,225,15,74,15,190,132,1,16,99,1,0,66,138,140,1,32,99,1,0,72,43,208,139,66,252,211,232,65,137,65,32,72,141,66,4,73,137,81,8,139,10,73,137,65,8,65,137,73,36,235,3,131,33,0,73,139,193,195,204,204,204,64,83,72,131,236,32,51,192, - 15,87,192,136,65,24,72,139,217,72,137,65,28,72,137,65,36,15,17,65,48,76,137,65,64,68,137,73,72,57,66,12,116,69,72,99,82,12,73,3,208,76,141,5,96,103,255,255,72,137,81,8,15,182,10,131,225,15,74,15,190,132,1,16,99,1,0,66,138,140,1,32,99,1,0,72, - 43,208,139,66,252,211,232,72,139,203,137,3,72,137,83,8,72,137,83,16,232,15,0,0,0,235,2,137,1,72,139,195,72,131,196,32,91,195,204,204,51,192,76,141,29,19,103,255,255,136,65,24,15,87,192,72,137,65,28,76,139,193,72,137,65,36,15,17,65,48,72,139, - 65,8,68,138,8,72,141,80,1,68,136,73,24,72,137,81,8,65,246,193,1,116,39,15,182,10,131,225,15,74,15,190,132,25,16,99,1,0,66,138,140,25,32,99,1,0,72,43,208,139,66,252,211,232,65,137,64,28,73,137,80,8,65,246,193,2,116,14,139,2,72,131,194,4,73,137, - 80,8,65,137,64,32,65,246,193,4,116,39,15,182,10,131,225,15,74,15,190,132,25,16,99,1,0,66,138,140,25,32,99,1,0,72,43,208,139,66,252,211,232,65,137,64,36,73,137,80,8,139,2,76,141,82,4,65,137,64,40,177,48,65,138,193,77,137,80,8,34,193,65,246,193, - 8,116,64,60,16,117,16,73,99,10,73,141,66,4,73,137,64,8,73,137,72,48,195,68,34,201,65,128,249,32,15,133,184,0,0,0,73,99,2,73,141,82,4,73,137,80,8,73,137,64,48,72,141,66,4,72,99,10,73,137,64,8,233,149,0,0,0,60,16,117,48,65,15,182,10,131,225,15, - 74,15,190,132,25,16,99,1,0,66,138,140,25,32,99,1,0,76,43,208,65,139,64,72,65,139,82,252,211,234,3,194,77,137,80,8,73,137,64,48,195,68,34,201,65,128,249,32,117,92,65,15,182,10,65,139,80,72,131,225,15,74,15,190,132,25,16,99,1,0,66,138,140,25,32, - 99,1,0,76,43,208,65,139,66,252,211,232,77,137,80,8,141,12,2,73,137,72,48,65,15,182,10,131,225,15,74,15,190,132,25,16,99,1,0,66,138,140,25,32,99,1,0,76,43,208,65,139,66,252,211,232,77,137,80,8,141,12,2,73,137,72,56,195,68,137,76,36,32,76,137, - 68,36,24,72,137,76,36,8,83,86,87,65,84,65,85,65,86,65,87,72,131,236,48,69,139,225,73,139,240,72,139,218,76,139,249,232,41,200,255,255,76,139,232,72,137,68,36,40,76,139,198,72,139,211,73,139,207,232,35,249,255,255,139,248,232,92,247,255,255,255, - 64,48,131,255,255,15,132,235,0,0,0,65,59,252,15,142,226,0,0,0,131,255,255,15,142,20,1,0,0,59,126,4,15,141,11,1,0,0,76,99,247,232,221,199,255,255,72,99,78,8,74,141,4,240,139,60,1,137,124,36,32,232,201,199,255,255,72,99,78,8,74,141,4,240,131,124, - 1,4,0,116,28,232,181,199,255,255,72,99,78,8,74,141,4,240,72,99,92,1,4,232,163,199,255,255,72,3,195,235,2,51,192,72,133,192,116,89,68,139,199,72,139,214,73,139,207,232,193,248,255,255,232,132,199,255,255,72,99,78,8,74,141,4,240,131,124,1,4,0, - 116,28,232,112,199,255,255,72,99,78,8,74,141,4,240,72,99,92,1,4,232,94,199,255,255,72,3,195,235,2,51,192,65,184,3,1,0,0,73,139,215,72,139,200,232,166,113,0,0,73,139,205,232,82,199,255,255,235,30,68,139,164,36,136,0,0,0,72,139,180,36,128,0,0, - 0,76,139,124,36,112,76,139,108,36,40,139,124,36,32,137,124,36,36,233,12,255,255,255,232,96,246,255,255,131,120,48,0,126,8,232,85,246,255,255,255,72,48,131,255,255,116,5,65,59,252,127,36,68,139,199,72,139,214,73,139,207,232,34,248,255,255,72, - 131,196,48,65,95,65,94,65,93,65,92,95,94,91,195,232,97,245,255,255,144,232,91,245,255,255,144,204,204,72,137,92,36,8,72,137,108,36,16,72,137,116,36,24,87,72,131,236,32,72,139,233,73,139,248,73,139,200,72,139,242,232,71,247,255,255,76,141,76, - 36,72,76,139,199,72,139,214,72,139,205,139,216,232,150,192,255,255,76,139,199,72,139,214,72,139,205,232,4,248,255,255,59,216,126,35,68,139,195,72,141,76,36,72,72,139,215,232,168,247,255,255,68,139,203,76,139,199,72,139,214,72,139,205,232,163, - 247,255,255,235,16,76,139,199,72,139,214,72,139,205,232,207,247,255,255,139,216,72,139,108,36,56,139,195,72,139,92,36,48,72,139,116,36,64,72,131,196,32,95,195,204,204,204,204,204,204,64,83,86,87,65,84,65,85,65,86,65,87,72,131,236,112,72,139, - 249,69,51,255,68,137,124,36,32,68,33,188,36,176,0,0,0,76,33,124,36,40,76,33,188,36,200,0,0,0,232,75,245,255,255,76,139,104,40,76,137,108,36,64,232,61,245,255,255,72,139,64,32,72,137,132,36,192,0,0,0,72,139,119,80,72,137,180,36,184,0,0,0,72,139, - 71,72,72,137,68,36,48,72,139,95,64,72,139,71,48,72,137,68,36,72,76,139,119,40,76,137,116,36,80,72,139,203,232,2,244,255,255,232,249,244,255,255,72,137,112,32,232,240,244,255,255,72,137,88,40,232,231,244,255,255,72,139,80,32,72,139,82,40,72,141, - 76,36,96,232,221,197,255,255,76,139,224,72,137,68,36,56,76,57,127,88,116,28,199,132,36,176,0,0,0,1,0,0,0,232,183,244,255,255,72,139,72,112,72,137,140,36,200,0,0,0,65,184,0,1,0,0,73,139,214,72,139,76,36,72,232,168,111,0,0,72,139,216,72,137,68, - 36,40,72,139,188,36,192,0,0,0,235,120,199,68,36,32,1,0,0,0,232,121,244,255,255,131,96,64,0,72,139,180,36,184,0,0,0,131,188,36,176,0,0,0,0,116,33,178,1,72,139,206,232,233,199,255,255,72,139,132,36,200,0,0,0,76,141,72,32,68,139,64,24,139,80,4, - 139,8,235,13,76,141,78,32,68,139,70,24,139,86,4,139,14,255,21,127,91,1,0,68,139,124,36,32,72,139,92,36,40,76,139,108,36,64,72,139,188,36,192,0,0,0,76,139,116,36,80,76,139,100,36,56,73,139,204,232,74,197,255,255,69,133,255,117,50,129,62,99,115, - 109,224,117,42,131,126,24,4,117,36,139,70,32,45,32,5,147,25,131,248,2,119,23,72,139,78,40,232,237,199,255,255,133,192,116,10,178,1,72,139,206,232,95,199,255,255,232,202,243,255,255,72,137,120,32,232,193,243,255,255,76,137,104,40,72,139,68,36, - 48,72,99,72,28,73,139,6,72,199,4,1,254,255,255,255,72,139,195,72,131,196,112,65,95,65,94,65,93,65,92,95,94,91,195,204,204,72,139,196,83,86,87,65,84,65,85,65,86,65,87,72,129,236,0,1,0,0,15,41,112,184,72,139,5,124,129,1,0,72,51,196,72,137,132, - 36,224,0,0,0,69,139,233,73,139,216,72,139,242,76,139,225,72,137,76,36,112,72,137,76,36,96,68,137,76,36,72,232,249,195,255,255,72,137,68,36,104,72,139,214,72,139,203,232,149,245,255,255,139,248,76,141,118,72,76,137,116,36,120,65,131,62,0,116, - 23,232,35,243,255,255,131,120,120,254,15,133,120,2,0,0,65,139,62,131,239,2,235,31,232,12,243,255,255,131,120,120,254,116,20,232,1,243,255,255,139,120,120,232,249,242,255,255,199,64,120,254,255,255,255,232,237,242,255,255,255,64,48,72,131,198, - 8,72,137,180,36,128,0,0,0,131,123,8,0,116,63,72,99,83,8,72,3,22,15,182,10,131,225,15,76,141,5,164,96,255,255,74,15,190,132,1,16,99,1,0,66,15,182,140,1,32,99,1,0,72,43,208,139,66,252,211,232,137,132,36,192,0,0,0,72,137,148,36,200,0,0,0,235,16, - 131,164,36,192,0,0,0,0,72,139,148,36,200,0,0,0,72,141,132,36,192,0,0,0,72,137,68,36,48,72,137,84,36,56,72,141,132,36,192,0,0,0,72,137,68,36,80,72,137,84,36,88,72,141,68,36,80,72,137,68,36,32,76,141,76,36,48,69,139,197,139,215,72,141,140,36,192, - 0,0,0,232,152,245,255,255,144,72,141,132,36,192,0,0,0,72,137,132,36,152,0,0,0,72,139,132,36,200,0,0,0,72,137,132,36,160,0,0,0,76,139,124,36,56,76,59,248,15,130,54,1,0,0,76,59,124,36,88,15,134,43,1,0,0,72,141,84,36,56,72,139,76,36,48,232,207, - 246,255,255,76,137,124,36,56,72,139,92,36,48,15,16,115,16,15,17,180,36,136,0,0,0,15,40,68,36,48,102,15,127,132,36,176,0,0,0,72,141,84,36,56,72,139,203,232,158,246,255,255,139,67,16,76,43,248,76,137,124,36,56,72,141,68,36,48,72,137,68,36,32,68, - 139,207,76,141,132,36,176,0,0,0,65,139,213,72,141,76,36,80,232,193,245,255,255,139,248,137,68,36,68,131,100,36,64,0,69,51,201,102,15,111,198,102,15,115,216,8,102,15,126,192,102,15,115,222,4,102,15,126,241,133,201,68,15,69,200,68,137,76,36,64, - 69,133,201,15,132,129,0,0,0,141,71,2,65,137,6,141,65,255,131,248,1,118,22,73,99,201,72,3,14,65,184,3,1,0,0,73,139,212,232,83,108,0,0,235,54,72,139,68,36,96,72,139,16,131,249,2,117,13,139,132,36,148,0,0,0,76,139,4,16,235,11,68,139,132,36,148, - 0,0,0,76,3,194,73,99,201,72,3,14,65,185,3,1,0,0,232,203,108,0,0,72,139,76,36,104,232,197,193,255,255,235,27,139,124,36,68,76,139,100,36,112,76,139,116,36,120,72,139,180,36,128,0,0,0,68,139,108,36,72,233,156,254,255,255,232,218,240,255,255,131, - 120,48,0,126,8,232,207,240,255,255,255,72,48,72,139,140,36,224,0,0,0,72,51,204,232,124,35,0,0,15,40,180,36,240,0,0,0,72,129,196,0,1,0,0,65,95,65,94,65,93,65,92,95,94,91,195,232,216,239,255,255,144,204,204,204,204,204,204,204,204,204,204,204, - 72,139,196,83,86,87,65,84,65,85,65,87,72,129,236,168,0,0,0,72,139,249,69,51,228,68,137,100,36,32,68,33,164,36,240,0,0,0,76,33,100,36,40,76,33,100,36,64,68,136,96,128,68,33,96,132,68,33,96,136,68,33,96,140,68,33,96,144,68,33,96,148,232,67,240, - 255,255,72,139,64,40,72,137,68,36,56,232,53,240,255,255,72,139,64,32,72,137,68,36,48,72,139,119,80,72,137,180,36,248,0,0,0,72,139,95,64,72,139,71,48,72,137,68,36,80,76,139,127,40,72,139,71,72,72,137,68,36,112,72,139,71,104,72,137,68,36,120,139, - 71,120,137,132,36,232,0,0,0,139,71,56,137,132,36,224,0,0,0,72,139,203,232,229,238,255,255,232,220,239,255,255,72,137,112,32,232,211,239,255,255,72,137,88,40,232,202,239,255,255,72,139,80,32,72,139,82,40,72,141,140,36,136,0,0,0,232,189,192,255, - 255,76,139,232,72,137,68,36,72,76,57,103,88,116,25,199,132,36,240,0,0,0,1,0,0,0,232,151,239,255,255,72,139,72,112,72,137,76,36,64,65,184,0,1,0,0,73,139,215,72,139,76,36,80,232,219,106,0,0,72,139,216,72,137,68,36,40,72,131,248,2,125,19,72,139, - 92,196,112,72,133,219,15,132,24,1,0,0,72,137,92,36,40,73,139,215,72,139,203,232,223,106,0,0,72,139,124,36,56,76,139,124,36,48,235,124,199,68,36,32,1,0,0,0,232,54,239,255,255,131,96,64,0,232,45,239,255,255,139,140,36,232,0,0,0,137,72,120,72,139, - 180,36,248,0,0,0,131,188,36,240,0,0,0,0,116,30,178,1,72,139,206,232,151,194,255,255,72,139,68,36,64,76,141,72,32,68,139,64,24,139,80,4,139,8,235,13,76,141,78,32,68,139,70,24,139,86,4,139,14,255,21,48,86,1,0,68,139,100,36,32,72,139,92,36,40,72, - 139,124,36,56,76,139,124,36,48,76,139,108,36,72,73,139,205,232,3,192,255,255,69,133,228,117,50,129,62,99,115,109,224,117,42,131,126,24,4,117,36,139,70,32,45,32,5,147,25,131,248,2,119,23,72,139,78,40,232,166,194,255,255,133,192,116,10,178,1,72, - 139,206,232,24,194,255,255,232,131,238,255,255,76,137,120,32,232,122,238,255,255,72,137,120,40,232,113,238,255,255,139,140,36,224,0,0,0,137,72,120,232,98,238,255,255,199,64,120,254,255,255,255,72,139,195,72,129,196,168,0,0,0,65,95,65,93,65,92, - 95,94,91,195,232,126,237,255,255,144,204,72,139,194,73,139,208,72,255,224,204,204,204,73,139,192,76,139,210,72,139,208,69,139,193,73,255,226,204,72,131,97,16,0,72,141,5,40,195,0,0,72,137,65,8,72,141,5,13,195,0,0,72,137,1,72,139,193,195,204,204, - 64,83,72,131,236,32,72,139,217,72,139,194,72,141,13,169,188,0,0,15,87,192,72,137,11,72,141,83,8,72,141,72,8,15,17,2,232,167,194,255,255,72,141,5,212,194,0,0,72,137,3,72,139,195,72,131,196,32,91,195,72,137,92,36,8,87,72,131,236,32,76,139,9,73, - 139,216,65,131,32,0,65,184,99,115,109,224,69,57,1,117,90,65,131,121,24,4,191,1,0,0,0,65,186,32,5,147,25,117,27,65,139,65,32,65,43,194,131,248,2,119,15,72,139,66,40,73,57,65,40,139,11,15,68,207,137,11,69,57,1,117,40,65,131,121,24,4,117,33,65, - 139,73,32,65,43,202,131,249,2,119,21,73,131,121,48,0,117,14,232,88,237,255,255,137,120,64,139,199,137,59,235,2,51,192,72,139,92,36,48,72,131,196,32,95,195,204,204,72,137,92,36,8,87,72,131,236,32,65,139,248,77,139,193,232,99,255,255,255,139,216, - 133,192,117,8,232,32,237,255,255,137,120,120,139,195,72,139,92,36,48,72,131,196,32,95,195,72,137,92,36,8,72,137,108,36,24,72,137,116,36,32,87,65,84,65,85,65,86,65,87,72,131,236,32,72,139,234,76,139,233,72,133,210,15,132,188,0,0,0,69,50,255,51, - 246,57,50,15,142,143,0,0,0,232,175,189,255,255,72,139,208,73,139,69,48,76,99,96,12,73,131,196,4,76,3,226,232,152,189,255,255,72,139,208,73,139,69,48,72,99,72,12,68,139,52,10,69,133,246,126,84,72,99,198,72,141,4,128,72,137,68,36,88,232,115,189, - 255,255,73,139,93,48,72,139,248,73,99,4,36,72,3,248,232,52,189,255,255,72,139,84,36,88,76,139,195,72,99,77,4,72,141,4,144,72,139,215,72,3,200,232,53,1,0,0,133,192,117,14,65,255,206,73,131,196,4,69,133,246,127,189,235,3,65,183,1,255,198,59,117, - 0,15,140,113,255,255,255,72,139,92,36,80,65,138,199,72,139,108,36,96,72,139,116,36,104,72,131,196,32,65,95,65,94,65,93,65,92,95,195,232,96,235,255,255,204,204,204,204,72,137,92,36,8,72,137,108,36,16,72,137,116,36,24,87,72,131,236,32,51,237,72, - 139,249,57,41,126,80,51,246,232,172,188,255,255,72,99,79,4,72,3,198,131,124,1,4,0,116,27,232,153,188,255,255,72,99,79,4,72,3,198,72,99,92,1,4,232,136,188,255,255,72,3,195,235,2,51,192,72,141,72,8,72,141,21,86,132,1,0,232,113,193,255,255,133, - 192,116,33,255,197,72,131,198,20,59,47,124,178,50,192,72,139,92,36,48,72,139,108,36,56,72,139,116,36,64,72,131,196,32,95,195,176,1,235,231,233,107,8,0,0,204,204,204,72,131,236,88,72,137,100,36,72,138,132,36,152,0,0,0,136,68,36,56,72,139,132, - 36,144,0,0,0,72,137,68,36,48,139,132,36,136,0,0,0,137,68,36,40,72,139,132,36,128,0,0,0,72,137,68,36,32,232,98,10,0,0,137,68,36,64,72,141,21,9,0,0,0,72,139,204,232,207,103,0,0,144,139,68,36,64,72,131,196,88,195,204,72,139,196,72,137,88,8,72,137, - 104,16,72,137,112,24,72,137,120,32,65,86,72,131,236,32,51,219,77,139,240,72,139,234,72,139,249,57,89,4,15,132,240,0,0,0,72,99,113,4,232,174,187,255,255,76,139,200,76,3,206,15,132,219,0,0,0,133,246,116,15,72,99,119,4,232,149,187,255,255,72,141, - 12,6,235,5,72,139,203,139,243,56,89,16,15,132,186,0,0,0,246,7,128,116,10,246,69,0,16,15,133,171,0,0,0,133,246,116,17,232,105,187,255,255,72,139,240,72,99,71,4,72,3,240,235,3,72,139,243,232,129,187,255,255,72,139,200,72,99,69,4,72,3,200,72,59, - 241,116,75,57,95,4,116,17,232,60,187,255,255,72,139,240,72,99,71,4,72,3,240,235,3,72,139,243,232,84,187,255,255,76,99,69,4,73,131,192,16,76,3,192,72,141,70,16,76,43,192,15,182,8,66,15,182,20,0,43,202,117,7,72,255,192,133,210,117,237,133,201, - 116,4,51,192,235,57,176,2,132,69,0,116,5,246,7,8,116,36,65,246,6,1,116,5,246,7,1,116,25,65,246,6,4,116,5,246,7,4,116,14,65,132,6,116,4,132,7,116,5,187,1,0,0,0,139,195,235,5,184,1,0,0,0,72,139,92,36,48,72,139,108,36,56,72,139,116,36,64,72,139, - 124,36,72,72,131,196,32,65,94,195,204,204,204,72,139,196,72,137,88,8,72,137,104,16,72,137,112,24,72,137,120,32,65,86,72,131,236,32,51,219,77,139,240,72,139,234,72,139,249,57,89,8,15,132,245,0,0,0,72,99,113,8,232,110,186,255,255,76,139,200,76, - 3,206,15,132,224,0,0,0,133,246,116,15,72,99,119,8,232,85,186,255,255,72,141,12,6,235,5,72,139,203,139,243,56,89,16,15,132,191,0,0,0,246,71,4,128,116,10,246,69,0,16,15,133,175,0,0,0,133,246,116,17,232,40,186,255,255,72,139,240,72,99,71,8,72,3, - 240,235,3,72,139,243,232,64,186,255,255,72,139,200,72,99,69,4,72,3,200,72,59,241,116,75,57,95,8,116,17,232,251,185,255,255,72,139,240,72,99,71,8,72,3,240,235,3,72,139,243,232,19,186,255,255,76,99,69,4,73,131,192,16,76,3,192,72,141,70,16,76,43, - 192,15,182,8,66,15,182,20,0,43,202,117,7,72,255,192,133,210,117,237,133,201,116,4,51,192,235,61,176,2,132,69,0,116,6,246,71,4,8,116,39,65,246,6,1,116,6,246,71,4,1,116,27,65,246,6,4,116,6,246,71,4,4,116,15,65,132,6,116,5,132,71,4,116,5,187,1, - 0,0,0,139,195,235,5,184,1,0,0,0,72,139,92,36,48,72,139,108,36,56,72,139,116,36,64,72,139,124,36,72,72,131,196,32,65,94,195,204,204,72,137,92,36,8,72,137,116,36,16,72,137,124,36,24,65,85,65,86,65,87,72,131,236,48,77,139,241,73,139,216,72,139, - 242,76,139,233,51,255,65,57,120,4,116,15,77,99,120,4,232,42,185,255,255,73,141,20,7,235,6,72,139,215,68,139,255,72,133,210,15,132,119,1,0,0,69,133,255,116,17,232,11,185,255,255,72,139,200,72,99,67,4,72,3,200,235,3,72,139,207,64,56,121,16,15, - 132,84,1,0,0,57,123,8,117,8,57,59,15,141,71,1,0,0,57,59,124,10,72,99,67,8,72,3,6,72,139,240,246,3,128,116,50,65,246,6,16,116,44,72,139,5,93,130,1,0,72,133,192,116,32,255,21,26,71,1,0,72,133,192,15,132,47,1,0,0,72,133,246,15,132,38,1,0,0,72,137, - 6,72,139,200,235,95,246,3,8,116,27,73,139,77,40,72,133,201,15,132,17,1,0,0,72,133,246,15,132,8,1,0,0,72,137,14,235,63,65,246,6,1,116,74,73,139,85,40,72,133,210,15,132,245,0,0,0,72,133,246,15,132,236,0,0,0,77,99,70,20,72,139,206,232,184,26,0, - 0,65,131,126,20,8,15,133,171,0,0,0,72,57,62,15,132,162,0,0,0,72,139,14,73,141,86,8,232,200,187,255,255,72,137,6,233,142,0,0,0,65,57,126,24,116,15,73,99,94,24,232,77,184,255,255,72,141,12,3,235,5,72,139,207,139,223,72,133,201,117,52,73,57,125, - 40,15,132,148,0,0,0,72,133,246,15,132,139,0,0,0,73,99,94,20,73,141,86,8,73,139,77,40,232,125,187,255,255,72,139,208,76,139,195,72,139,206,232,63,26,0,0,235,59,73,57,125,40,116,105,72,133,246,116,100,133,219,116,17,232,245,183,255,255,72,139, - 200,73,99,70,24,72,3,200,235,3,72,139,207,72,133,201,116,71,65,138,6,36,4,246,216,27,201,247,217,255,193,139,249,137,76,36,32,139,199,235,2,51,192,72,139,92,36,80,72,139,116,36,88,72,139,124,36,96,72,131,196,48,65,95,65,94,65,93,195,232,9,230, - 255,255,232,4,230,255,255,232,255,229,255,255,232,250,229,255,255,232,245,229,255,255,144,232,239,229,255,255,144,204,204,72,137,92,36,8,72,137,116,36,16,72,137,124,36,24,65,85,65,86,65,87,72,131,236,48,77,139,241,73,139,216,72,139,242,76,139, - 233,51,255,65,57,120,8,116,15,77,99,120,8,232,42,183,255,255,73,141,20,7,235,6,72,139,215,68,139,255,72,133,210,15,132,122,1,0,0,69,133,255,116,17,232,11,183,255,255,72,139,200,72,99,67,8,72,3,200,235,3,72,139,207,64,56,121,16,15,132,87,1,0, - 0,57,123,12,117,9,57,123,4,15,141,73,1,0,0,57,123,4,124,9,139,67,12,72,3,6,72,139,240,246,67,4,128,116,50,65,246,6,16,116,44,72,139,5,91,128,1,0,72,133,192,116,32,255,21,24,69,1,0,72,133,192,15,132,48,1,0,0,72,133,246,15,132,39,1,0,0,72,137, - 6,72,139,200,235,96,246,67,4,8,116,27,73,139,77,40,72,133,201,15,132,17,1,0,0,72,133,246,15,132,8,1,0,0,72,137,14,235,63,65,246,6,1,116,74,73,139,85,40,72,133,210,15,132,245,0,0,0,72,133,246,15,132,236,0,0,0,77,99,70,20,72,139,206,232,181,24, - 0,0,65,131,126,20,8,15,133,171,0,0,0,72,57,62,15,132,162,0,0,0,72,139,14,73,141,86,8,232,197,185,255,255,72,137,6,233,142,0,0,0,65,57,126,24,116,15,73,99,94,24,232,74,182,255,255,72,141,12,3,235,5,72,139,207,139,223,72,133,201,117,52,73,57,125, - 40,15,132,148,0,0,0,72,133,246,15,132,139,0,0,0,73,99,94,20,73,141,86,8,73,139,77,40,232,122,185,255,255,72,139,208,76,139,195,72,139,206,232,60,24,0,0,235,59,73,57,125,40,116,105,72,133,246,116,100,133,219,116,17,232,242,181,255,255,72,139, - 200,73,99,70,24,72,3,200,235,3,72,139,207,72,133,201,116,71,65,138,6,36,4,246,216,27,201,247,217,255,193,139,249,137,76,36,32,139,199,235,2,51,192,72,139,92,36,80,72,139,116,36,88,72,139,124,36,96,72,131,196,48,65,95,65,94,65,93,195,232,6,228, - 255,255,232,1,228,255,255,232,252,227,255,255,232,247,227,255,255,232,242,227,255,255,144,232,236,227,255,255,144,204,204,204,72,137,92,36,8,72,137,116,36,16,72,137,124,36,24,65,86,72,131,236,32,73,139,249,76,139,241,51,219,65,57,24,125,5,72, - 139,242,235,7,73,99,112,8,72,3,50,232,201,251,255,255,131,232,1,116,60,131,248,1,117,103,72,141,87,8,73,139,78,40,232,162,184,255,255,76,139,240,57,95,24,116,12,232,49,181,255,255,72,99,95,24,72,3,216,65,185,1,0,0,0,77,139,198,72,139,211,72, - 139,206,232,6,246,255,255,235,48,72,141,87,8,73,139,78,40,232,107,184,255,255,76,139,240,57,95,24,116,12,232,250,180,255,255,72,99,95,24,72,3,216,77,139,198,72,139,211,72,139,206,232,201,245,255,255,144,72,139,92,36,48,72,139,116,36,56,72,139, - 124,36,64,72,131,196,32,65,94,195,232,41,227,255,255,144,72,137,92,36,8,72,137,116,36,16,72,137,124,36,24,65,86,72,131,236,32,73,139,249,76,139,241,51,219,65,57,88,4,125,5,72,139,242,235,7,65,139,112,12,72,3,50,232,8,253,255,255,131,232,1,116, - 60,131,248,1,117,103,72,141,87,8,73,139,78,40,232,225,183,255,255,76,139,240,57,95,24,116,12,232,112,180,255,255,72,99,95,24,72,3,216,65,185,1,0,0,0,77,139,198,72,139,211,72,139,206,232,69,245,255,255,235,48,72,141,87,8,73,139,78,40,232,170, - 183,255,255,76,139,240,57,95,24,116,12,232,57,180,255,255,72,99,95,24,72,3,216,77,139,198,72,139,211,72,139,206,232,8,245,255,255,144,72,139,92,36,48,72,139,116,36,56,72,139,124,36,64,72,131,196,32,65,94,195,232,104,226,255,255,144,204,204,204, - 72,139,196,72,137,88,8,72,137,104,16,72,137,112,24,72,137,120,32,65,86,72,131,236,80,72,139,249,73,139,241,73,139,200,77,139,240,72,139,234,232,255,225,255,255,232,246,226,255,255,72,139,156,36,128,0,0,0,185,41,0,0,128,186,38,0,0,128,131,120, - 64,0,117,56,129,63,99,115,109,224,116,48,57,15,117,16,131,127,24,15,117,14,72,129,127,96,32,5,147,25,116,28,57,23,116,24,139,3,37,255,255,255,31,61,34,5,147,25,114,10,246,67,36,1,15,133,143,1,0,0,246,71,4,102,15,132,142,0,0,0,131,123,4,0,15, - 132,123,1,0,0,131,188,36,136,0,0,0,0,15,133,109,1,0,0,246,71,4,32,116,93,57,23,117,55,76,139,70,32,72,139,214,72,139,203,232,195,227,255,255,131,248,255,15,140,107,1,0,0,59,67,4,15,141,98,1,0,0,68,139,200,72,139,205,72,139,214,76,139,195,232, - 160,234,255,255,233,44,1,0,0,57,15,117,30,68,139,79,56,65,131,249,255,15,140,58,1,0,0,68,59,75,4,15,141,48,1,0,0,72,139,79,40,235,206,76,139,195,72,139,214,72,139,205,232,99,172,255,255,233,247,0,0,0,131,123,12,0,117,66,139,3,37,255,255,255, - 31,61,33,5,147,25,114,20,131,123,32,0,116,14,232,159,178,255,255,72,99,75,32,72,3,193,117,32,139,3,37,255,255,255,31,61,34,5,147,25,15,130,189,0,0,0,139,67,36,193,232,2,168,1,15,132,175,0,0,0,129,63,99,115,109,224,117,110,131,127,24,3,114,104, - 129,127,32,34,5,147,25,118,95,72,139,71,48,131,120,8,0,116,85,232,124,178,255,255,72,139,79,48,76,139,208,72,99,81,8,76,3,210,116,64,15,182,140,36,152,0,0,0,76,139,206,139,132,36,136,0,0,0,77,139,198,137,76,36,56,72,139,213,72,139,140,36,144, - 0,0,0,72,137,76,36,48,72,139,207,137,68,36,40,73,139,194,72,137,92,36,32,255,21,98,64,1,0,235,62,72,139,132,36,144,0,0,0,76,139,206,72,137,68,36,56,77,139,198,139,132,36,136,0,0,0,72,139,213,137,68,36,48,72,139,207,138,132,36,152,0,0,0,136,68, - 36,40,72,137,92,36,32,232,187,2,0,0,184,1,0,0,0,72,139,92,36,96,72,139,108,36,104,72,139,116,36,112,72,139,124,36,120,72,131,196,80,65,94,195,232,46,224,255,255,204,204,72,137,92,36,8,72,137,108,36,16,72,137,116,36,24,87,65,86,65,87,72,129,236, - 128,0,0,0,72,139,217,73,139,233,73,139,200,77,139,248,76,139,242,232,197,223,255,255,232,188,224,255,255,72,139,188,36,192,0,0,0,51,246,65,184,41,0,0,128,65,185,38,0,0,128,57,112,64,117,43,129,59,99,115,109,224,116,35,68,57,3,117,16,131,123, - 24,15,117,15,72,129,123,96,32,5,147,25,116,14,68,57,11,116,9,246,7,32,15,133,242,1,0,0,246,67,4,102,15,132,26,1,0,0,57,119,8,15,132,223,1,0,0,72,99,87,8,76,141,61,56,78,255,255,72,3,85,8,15,182,10,131,225,15,74,15,190,132,57,16,99,1,0,66,138, - 140,57,32,99,1,0,72,43,208,139,66,252,211,232,133,192,15,132,169,1,0,0,57,180,36,200,0,0,0,15,133,156,1,0,0,246,67,4,32,15,132,177,0,0,0,68,57,11,117,99,76,139,69,32,72,139,213,72,139,207,232,102,226,255,255,68,139,200,131,248,255,15,140,148, - 1,0,0,57,119,8,116,39,72,99,87,8,72,3,85,8,15,182,10,131,225,15,74,15,190,132,57,16,99,1,0,66,138,140,57,32,99,1,0,72,43,208,139,114,252,211,238,68,59,206,15,141,95,1,0,0,73,139,206,72,139,213,76,139,199,232,31,236,255,255,233,42,1,0,0,68,57, - 3,117,68,68,139,75,56,65,131,249,255,15,140,57,1,0,0,72,99,87,8,72,3,85,8,15,182,10,131,225,15,74,15,190,132,57,16,99,1,0,66,138,140,57,32,99,1,0,72,43,208,139,66,252,211,232,68,59,200,15,141,9,1,0,0,72,139,75,40,235,167,76,139,199,72,139,213, - 73,139,206,232,35,173,255,255,233,206,0,0,0,76,139,69,8,72,141,76,36,80,72,139,215,232,177,228,255,255,57,116,36,80,117,9,246,7,64,15,132,174,0,0,0,129,59,99,115,109,224,117,109,131,123,24,3,114,103,129,123,32,34,5,147,25,118,94,72,139,67,48, - 57,112,8,116,85,232,233,175,255,255,72,139,75,48,76,139,208,72,99,81,8,76,3,210,116,64,15,182,140,36,216,0,0,0,76,139,205,139,132,36,200,0,0,0,77,139,199,137,76,36,56,73,139,214,72,139,140,36,208,0,0,0,72,137,76,36,48,72,139,203,137,68,36,40, - 73,139,194,72,137,124,36,32,255,21,207,61,1,0,235,62,72,139,132,36,208,0,0,0,76,139,205,72,137,68,36,56,77,139,199,139,132,36,200,0,0,0,73,139,214,137,68,36,48,72,139,203,138,132,36,216,0,0,0,136,68,36,40,72,137,124,36,32,232,0,5,0,0,184,1,0, - 0,0,76,141,156,36,128,0,0,0,73,139,91,32,73,139,107,40,73,139,115,48,73,139,227,65,95,65,94,95,195,232,153,221,255,255,204,64,85,83,86,87,65,84,65,85,65,86,65,87,72,141,108,36,216,72,129,236,40,1,0,0,72,139,5,68,108,1,0,72,51,196,72,137,69,16, - 72,139,189,144,0,0,0,76,139,226,76,139,173,168,0,0,0,77,139,248,76,137,68,36,104,72,139,217,72,137,84,36,120,76,139,199,73,139,204,76,137,109,152,73,139,209,198,68,36,96,0,73,139,241,232,222,231,255,255,68,139,240,131,248,255,15,140,97,4,0,0, - 59,71,4,15,141,88,4,0,0,129,59,99,115,109,224,15,133,201,0,0,0,131,123,24,4,15,133,191,0,0,0,139,67,32,45,32,5,147,25,131,248,2,15,135,174,0,0,0,72,131,123,48,0,15,133,163,0,0,0,232,174,221,255,255,72,131,120,32,0,15,132,175,3,0,0,232,158,221, - 255,255,72,139,88,32,232,149,221,255,255,72,139,75,56,198,68,36,96,1,76,139,120,40,76,137,124,36,104,232,110,174,255,255,129,59,99,115,109,224,117,30,131,123,24,4,117,24,139,67,32,45,32,5,147,25,131,248,2,119,11,72,131,123,48,0,15,132,203,3, - 0,0,232,83,221,255,255,72,131,120,56,0,116,60,232,71,221,255,255,76,139,120,56,232,62,221,255,255,73,139,215,72,139,203,72,131,96,56,0,232,30,240,255,255,132,192,117,21,73,139,207,232,2,241,255,255,132,192,15,132,106,3,0,0,233,65,3,0,0,76,139, - 124,36,104,72,139,70,8,72,137,69,192,72,137,125,184,129,59,99,115,109,224,15,133,187,2,0,0,131,123,24,4,15,133,177,2,0,0,139,67,32,45,32,5,147,25,131,248,2,15,135,160,2,0,0,69,51,255,68,57,127,12,15,134,196,1,0,0,139,133,160,0,0,0,72,141,85, - 184,137,68,36,40,72,141,77,216,76,139,206,72,137,124,36,32,69,139,198,232,50,169,255,255,15,16,69,216,243,15,127,69,200,102,15,115,216,8,102,15,126,192,59,69,240,15,131,135,1,0,0,76,139,77,216,68,139,109,208,76,137,77,128,72,139,69,200,72,139, - 0,72,99,80,16,65,139,197,72,141,12,128,73,139,65,8,76,141,4,138,65,15,16,4,0,73,99,76,0,16,137,77,176,102,15,126,192,15,17,69,160,65,59,198,15,143,54,1,0,0,72,139,69,160,72,193,232,32,68,59,240,15,143,37,1,0,0,69,139,231,72,139,209,72,3,86,8, - 76,139,125,168,73,193,239,32,72,137,85,144,69,133,255,15,132,243,0,0,0,65,139,196,72,141,12,128,15,16,4,138,15,17,69,248,139,68,138,16,137,69,8,232,224,172,255,255,72,139,75,48,72,131,192,4,72,99,81,12,72,3,194,72,137,68,36,112,232,199,172,255, - 255,72,139,75,48,72,99,81,12,139,12,16,137,76,36,100,133,201,126,60,232,175,172,255,255,72,139,76,36,112,76,139,67,48,72,99,9,72,3,193,72,141,77,248,72,139,208,72,137,69,136,232,128,240,255,255,133,192,117,37,139,68,36,100,72,131,68,36,112,4, - 255,200,137,68,36,100,133,192,127,196,65,255,196,69,59,231,116,111,72,139,85,144,233,108,255,255,255,138,133,152,0,0,0,76,139,206,76,139,100,36,120,72,139,203,76,139,68,36,104,73,139,212,136,68,36,88,138,68,36,96,136,68,36,80,72,139,69,152,72, - 137,68,36,72,139,133,160,0,0,0,137,68,36,64,72,141,69,160,72,137,68,36,56,72,139,69,136,72,137,68,36,48,72,141,69,248,72,137,68,36,40,72,137,124,36,32,232,166,6,0,0,235,12,76,139,100,36,120,235,9,76,139,100,36,120,76,139,77,128,69,51,255,65, - 255,197,68,59,109,240,15,130,133,254,255,255,139,7,37,255,255,255,31,61,33,5,147,25,15,130,250,0,0,0,68,57,127,32,116,14,232,159,171,255,255,72,99,79,32,72,3,193,117,33,139,71,36,193,232,2,168,1,15,132,216,0,0,0,72,139,215,72,139,206,232,241, - 164,255,255,132,192,15,133,197,0,0,0,139,71,36,193,232,2,168,1,15,133,13,1,0,0,68,57,127,32,116,17,232,92,171,255,255,72,139,208,72,99,71,32,72,3,208,235,3,73,139,215,72,139,203,232,133,237,255,255,132,192,15,133,141,0,0,0,76,141,77,136,76,139, - 199,72,139,214,73,139,204,232,47,165,255,255,138,141,152,0,0,0,76,139,200,76,139,68,36,104,72,139,211,136,76,36,80,131,201,255,72,137,116,36,72,76,137,124,36,64,137,76,36,56,137,76,36,48,73,139,204,72,137,124,36,40,76,137,124,36,32,232,191,165, - 255,255,235,61,131,127,12,0,118,55,128,189,152,0,0,0,0,15,133,157,0,0,0,139,133,160,0,0,0,76,139,206,76,137,108,36,56,77,139,199,137,68,36,48,73,139,212,68,137,116,36,40,72,139,203,72,137,124,36,32,232,76,6,0,0,232,251,217,255,255,72,131,120, - 56,0,117,103,72,139,77,16,72,51,204,232,168,12,0,0,72,129,196,40,1,0,0,65,95,65,94,65,93,65,92,95,94,91,93,195,178,1,72,139,203,232,90,173,255,255,72,141,77,248,232,157,235,255,255,72,141,21,18,92,1,0,72,141,77,248,232,241,157,255,255,204,232, - 123,211,255,255,204,232,165,217,255,255,72,137,88,32,232,156,217,255,255,72,139,76,36,104,72,137,72,40,232,94,211,255,255,204,232,196,216,255,255,204,204,204,204,64,85,83,86,87,65,84,65,85,65,86,65,87,72,141,172,36,120,255,255,255,72,129,236, - 136,1,0,0,72,139,5,105,103,1,0,72,51,196,72,137,69,112,76,139,181,240,0,0,0,76,139,250,76,139,165,8,1,0,0,72,139,217,72,137,84,36,120,73,139,206,73,139,209,76,137,101,160,73,139,241,198,68,36,96,0,77,139,232,232,131,219,255,255,131,126,72,0, - 139,248,116,23,232,26,217,255,255,131,120,120,254,15,133,129,4,0,0,139,126,72,131,239,2,235,31,232,3,217,255,255,131,120,120,254,116,20,232,248,216,255,255,139,120,120,232,240,216,255,255,199,64,120,254,255,255,255,131,255,255,15,140,81,4,0, - 0,65,131,126,8,0,76,141,5,180,70,255,255,116,41,73,99,86,8,72,3,86,8,15,182,10,131,225,15,74,15,190,132,1,16,99,1,0,66,138,140,1,32,99,1,0,72,43,208,139,66,252,211,232,235,2,51,192,59,248,15,141,16,4,0,0,129,59,99,115,109,224,15,133,196,0,0, - 0,131,123,24,4,15,133,186,0,0,0,139,67,32,45,32,5,147,25,131,248,2,15,135,169,0,0,0,72,131,123,48,0,15,133,158,0,0,0,232,104,216,255,255,72,131,120,32,0,15,132,108,3,0,0,232,88,216,255,255,72,139,88,32,232,79,216,255,255,72,139,75,56,198,68, - 36,96,1,76,139,104,40,232,45,169,255,255,129,59,99,115,109,224,117,30,131,123,24,4,117,24,139,67,32,45,32,5,147,25,131,248,2,119,11,72,131,123,48,0,15,132,136,3,0,0,232,18,216,255,255,72,131,120,56,0,116,60,232,6,216,255,255,76,139,120,56,232, - 253,215,255,255,73,139,215,72,139,203,72,131,96,56,0,232,221,234,255,255,132,192,117,21,73,139,207,232,193,235,255,255,132,192,15,132,44,3,0,0,233,3,3,0,0,76,139,124,36,120,76,139,70,8,72,141,77,240,73,139,214,232,47,221,255,255,129,59,99,115, - 109,224,15,133,122,2,0,0,131,123,24,4,15,133,112,2,0,0,139,67,32,45,32,5,147,25,131,248,2,15,135,95,2,0,0,131,125,240,0,15,134,58,2,0,0,139,133,0,1,0,0,72,141,85,240,137,68,36,40,72,141,77,168,76,139,206,76,137,116,36,32,68,139,199,232,176,166, - 255,255,15,16,69,168,243,15,127,69,136,102,15,115,216,8,102,15,126,192,59,69,192,15,131,253,1,0,0,76,139,125,168,139,69,144,76,137,125,128,137,68,36,104,65,15,16,71,24,102,72,15,126,192,15,17,69,136,59,199,15,143,51,1,0,0,72,193,232,32,59,248, - 15,143,39,1,0,0,72,139,70,16,72,141,85,136,76,139,70,8,72,141,77,32,68,139,8,232,80,221,255,255,139,69,32,69,51,228,68,137,100,36,100,137,68,36,108,133,192,15,132,248,0,0,0,15,16,69,56,15,16,77,72,15,17,69,200,242,15,16,69,88,242,15,17,69,232, - 15,17,77,216,232,174,167,255,255,72,139,75,48,72,131,192,4,72,99,81,12,72,3,194,72,137,68,36,112,232,149,167,255,255,72,139,75,48,72,99,81,12,68,139,60,16,69,133,255,126,58,232,127,167,255,255,76,139,67,48,76,139,224,72,139,68,36,112,72,99,8, - 76,3,225,72,141,77,200,73,139,212,232,145,236,255,255,133,192,117,48,72,131,68,36,112,4,65,255,207,69,133,255,127,203,68,139,100,36,100,72,141,77,32,232,41,221,255,255,65,255,196,68,137,100,36,100,68,59,100,36,108,116,89,233,96,255,255,255,138, - 133,248,0,0,0,76,139,206,72,139,84,36,120,77,139,197,136,68,36,88,72,139,203,138,68,36,96,136,68,36,80,72,139,69,160,72,137,68,36,72,139,133,0,1,0,0,137,68,36,64,72,141,69,136,72,137,68,36,56,72,141,69,200,76,137,100,36,48,72,137,68,36,40,76, - 137,116,36,32,232,101,4,0,0,76,139,125,128,77,139,71,8,72,141,21,206,67,255,255,65,15,182,8,131,225,15,72,15,190,132,17,16,99,1,0,138,140,17,32,99,1,0,76,43,192,65,139,64,252,211,232,77,137,71,8,65,137,71,24,65,15,182,8,131,225,15,72,15,190, - 132,17,16,99,1,0,138,140,17,32,99,1,0,76,43,192,65,139,64,252,211,232,77,137,71,8,65,137,71,28,65,15,182,8,131,225,15,72,15,190,132,17,16,99,1,0,138,140,17,32,99,1,0,76,43,192,65,139,64,252,211,232,139,76,36,104,65,137,71,32,255,193,77,137,71, - 8,73,141,64,4,65,139,16,73,137,71,8,65,137,87,36,137,76,36,104,59,77,192,15,130,18,254,255,255,65,246,6,64,116,81,73,139,214,72,139,206,232,7,163,255,255,132,192,15,132,148,0,0,0,235,60,131,125,240,0,118,54,128,189,248,0,0,0,0,15,133,151,0,0, - 0,139,133,0,1,0,0,76,139,206,76,137,100,36,56,77,139,197,137,68,36,48,73,139,215,137,124,36,40,72,139,203,76,137,116,36,32,232,57,4,0,0,232,248,212,255,255,72,131,120,56,0,117,98,72,139,77,112,72,51,204,232,165,7,0,0,72,129,196,136,1,0,0,65, - 95,65,94,65,93,65,92,95,94,91,93,195,178,1,72,139,203,232,87,168,255,255,72,141,77,136,232,154,230,255,255,72,141,21,15,87,1,0,72,141,77,136,232,238,152,255,255,204,232,120,206,255,255,204,232,162,212,255,255,72,137,88,32,232,153,212,255,255, - 76,137,104,40,232,96,206,255,255,204,232,198,211,255,255,204,204,72,139,196,72,137,88,8,76,137,64,24,85,86,87,65,84,65,85,65,86,65,87,72,131,236,96,76,139,172,36,192,0,0,0,77,139,249,76,139,226,76,141,72,16,72,139,233,77,139,197,73,139,215,73, - 139,204,232,255,158,255,255,76,139,140,36,208,0,0,0,76,139,240,72,139,180,36,200,0,0,0,77,133,201,116,14,76,139,198,72,139,208,72,139,205,232,121,239,255,255,72,139,140,36,216,0,0,0,139,89,8,139,57,232,195,164,255,255,72,99,78,12,77,139,206, - 76,139,132,36,176,0,0,0,72,3,193,138,140,36,248,0,0,0,72,139,213,136,76,36,80,73,139,204,76,137,124,36,72,72,137,116,36,64,137,92,36,56,137,124,36,48,76,137,108,36,40,72,137,68,36,32,232,79,159,255,255,72,139,156,36,160,0,0,0,72,131,196,96,65, - 95,65,94,65,93,65,92,95,94,93,195,204,204,204,72,139,196,72,137,88,32,76,137,64,24,72,137,80,16,85,86,87,65,84,65,85,65,86,65,87,72,141,104,193,72,129,236,192,0,0,0,129,57,3,0,0,128,73,139,241,77,139,248,76,139,241,116,110,232,121,211,255,255, - 68,139,101,111,72,139,125,103,72,131,120,16,0,116,117,51,201,255,21,234,56,1,0,72,139,216,232,90,211,255,255,72,57,88,16,116,95,65,129,62,77,79,67,224,116,86,65,129,62,82,67,67,224,68,139,109,119,116,77,72,139,69,127,76,139,206,72,139,85,79, - 77,139,199,68,137,100,36,56,73,139,206,72,137,68,36,48,68,137,108,36,40,72,137,124,36,32,232,72,166,255,255,133,192,116,31,72,139,156,36,24,1,0,0,72,129,196,192,0,0,0,65,95,65,94,65,93,65,92,95,94,93,195,68,139,109,119,72,139,70,8,72,137,69, - 175,72,137,125,167,131,127,12,0,15,134,58,1,0,0,68,137,108,36,40,72,141,85,167,76,139,206,72,137,124,36,32,69,139,196,72,141,77,223,232,66,159,255,255,15,16,69,223,243,15,127,69,183,102,15,115,216,8,102,15,126,192,59,69,247,115,151,76,139,77, - 223,68,139,125,191,76,137,77,71,72,139,69,183,72,139,0,72,99,80,16,65,139,199,72,141,12,128,73,139,65,8,76,141,4,138,65,15,16,4,0,73,99,84,0,16,137,85,215,102,15,126,192,15,17,69,199,65,59,196,15,143,168,0,0,0,72,139,69,199,72,193,232,32,68, - 59,224,15,143,151,0,0,0,72,139,69,207,72,139,94,8,72,193,232,32,72,131,195,236,72,141,12,128,72,141,20,138,72,3,218,131,123,4,0,116,45,76,99,107,4,232,216,162,255,255,73,3,197,116,27,69,133,237,116,14,232,201,162,255,255,72,99,75,4,72,3,193, - 235,2,51,192,128,120,16,0,117,77,68,139,109,119,246,3,64,117,68,72,139,69,127,76,139,206,76,139,69,87,73,139,206,72,139,85,79,198,68,36,88,0,198,68,36,80,1,72,137,68,36,72,72,141,69,199,68,137,108,36,64,72,137,68,36,56,72,131,100,36,48,0,72, - 137,92,36,40,72,137,124,36,32,232,51,253,255,255,68,139,109,119,65,255,199,76,139,77,71,68,59,125,247,15,130,11,255,255,255,233,145,254,255,255,232,216,208,255,255,204,204,204,204,72,139,196,72,137,88,8,76,137,64,24,85,86,87,65,84,65,85,65,86, - 65,87,72,131,236,96,76,139,172,36,192,0,0,0,77,139,249,76,139,226,76,141,72,16,72,139,233,77,139,197,73,139,215,73,139,204,232,123,160,255,255,76,139,140,36,208,0,0,0,76,139,240,72,139,180,36,200,0,0,0,77,133,201,116,14,76,139,198,72,139,208, - 72,139,205,232,73,237,255,255,72,139,140,36,216,0,0,0,139,89,8,139,57,232,211,161,255,255,72,99,78,16,77,139,206,76,139,132,36,176,0,0,0,72,3,193,138,140,36,248,0,0,0,72,139,213,136,76,36,80,73,139,204,76,137,124,36,72,72,137,116,36,64,137,92, - 36,56,137,124,36,48,76,137,108,36,40,72,137,68,36,32,232,223,158,255,255,72,139,156,36,160,0,0,0,72,131,196,96,65,95,65,94,65,93,65,92,95,94,93,195,204,204,204,64,85,83,86,87,65,84,65,85,65,86,65,87,72,141,108,36,200,72,129,236,56,1,0,0,72,139, - 5,172,94,1,0,72,51,196,72,137,69,40,129,57,3,0,0,128,73,139,249,72,139,133,184,0,0,0,76,139,234,76,139,181,160,0,0,0,72,139,241,72,137,68,36,112,76,137,68,36,120,15,132,117,2,0,0,232,107,208,255,255,68,139,165,176,0,0,0,68,139,189,168,0,0,0, - 72,131,120,16,0,116,90,51,201,255,21,214,53,1,0,72,139,216,232,70,208,255,255,72,57,88,16,116,68,129,62,77,79,67,224,116,60,129,62,82,67,67,224,116,52,72,139,68,36,112,76,139,207,76,139,68,36,120,73,139,213,68,137,124,36,56,72,139,206,72,137, - 68,36,48,68,137,100,36,40,76,137,116,36,32,232,228,162,255,255,133,192,15,133,1,2,0,0,76,139,71,8,72,141,77,0,73,139,214,232,92,213,255,255,131,125,0,0,15,134,7,2,0,0,68,137,100,36,40,72,141,85,0,76,139,207,76,137,116,36,32,69,139,199,72,141, - 77,144,232,9,159,255,255,15,16,69,144,243,15,127,69,128,102,15,115,216,8,102,15,126,192,59,69,168,15,131,175,1,0,0,76,139,69,144,76,141,13,127,61,255,255,139,69,136,76,137,68,36,104,137,68,36,96,65,15,16,64,24,102,72,15,126,192,15,17,69,128, - 65,59,199,15,143,231,0,0,0,72,193,232,32,68,59,248,15,143,218,0,0,0,72,139,71,16,72,141,85,128,76,139,71,8,72,141,77,176,68,139,8,232,159,213,255,255,72,139,69,192,72,141,77,176,72,137,69,184,232,10,214,255,255,72,139,69,192,72,141,77,176,139, - 93,176,72,137,69,184,232,246,213,255,255,131,235,1,116,15,72,141,77,176,232,232,213,255,255,72,131,235,1,117,241,131,125,208,0,116,40,232,195,159,255,255,72,99,85,208,72,3,194,116,26,133,210,116,14,232,177,159,255,255,72,99,77,208,72,3,193,235, - 2,51,192,128,120,16,0,117,79,246,69,204,64,117,73,72,139,68,36,112,76,139,207,76,139,68,36,120,73,139,213,198,68,36,88,0,72,139,206,198,68,36,80,1,72,137,68,36,72,72,141,69,128,68,137,100,36,64,72,137,68,36,56,72,141,69,200,72,131,100,36,48, - 0,72,137,68,36,40,76,137,116,36,32,232,9,253,255,255,76,139,68,36,104,76,141,13,117,60,255,255,73,139,80,8,15,182,10,131,225,15,74,15,190,132,9,16,99,1,0,66,138,140,9,32,99,1,0,72,43,208,139,66,252,211,232,73,137,80,8,65,137,64,24,15,182,10, - 131,225,15,74,15,190,132,9,16,99,1,0,66,138,140,9,32,99,1,0,72,43,208,139,66,252,211,232,73,137,80,8,65,137,64,28,15,182,10,131,225,15,74,15,190,132,9,16,99,1,0,66,138,140,9,32,99,1,0,72,43,208,139,66,252,211,232,65,137,64,32,72,141,66,4,73, - 137,80,8,139,10,65,137,72,36,139,76,36,96,255,193,73,137,64,8,137,76,36,96,59,77,168,15,130,104,254,255,255,72,139,77,40,72,51,204,232,175,0,0,0,72,129,196,56,1,0,0,65,95,65,94,65,93,65,92,95,94,91,93,195,232,18,205,255,255,204,204,64,83,69, - 139,24,72,139,218,65,131,227,248,76,139,201,65,246,0,4,76,139,209,116,19,65,139,64,8,77,99,80,4,247,216,76,3,209,72,99,200,76,35,209,73,99,195,74,139,20,16,72,139,67,16,139,72,8,72,139,67,8,246,68,1,3,15,116,11,15,182,68,1,3,131,224,240,76,3, - 200,76,51,202,73,139,201,91,233,57,0,0,0,204,72,131,236,40,77,139,65,56,72,139,202,73,139,209,232,145,255,255,255,184,1,0,0,0,72,131,196,40,195,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,102,102,15,31,132,0,0,0,0,0,72, - 59,13,65,91,1,0,117,16,72,193,193,16,102,247,193,255,255,117,1,195,72,193,201,16,233,146,74,0,0,204,204,204,204,204,204,204,204,102,102,15,31,132,0,0,0,0,0,87,86,72,139,249,72,139,242,73,139,200,243,164,94,95,195,204,204,204,204,204,204,102, - 102,15,31,132,0,0,0,0,0,72,139,193,76,141,21,198,58,255,255,73,131,248,15,15,135,12,1,0,0,102,102,102,102,15,31,132,0,0,0,0,0,71,139,140,130,176,160,2,0,77,3,202,65,255,225,195,144,76,139,2,139,74,8,68,15,183,74,12,68,15,182,82,14,76,137,0,137, - 72,8,102,68,137,72,12,68,136,80,14,195,76,139,2,15,183,74,8,68,15,182,74,10,76,137,0,102,137,72,8,68,136,72,10,195,15,183,10,102,137,8,195,144,139,10,68,15,183,66,4,68,15,182,74,6,137,8,102,68,137,64,4,68,136,72,6,195,76,139,2,139,74,8,68,15, - 183,74,12,76,137,0,137,72,8,102,68,137,72,12,195,15,183,10,68,15,182,66,2,102,137,8,68,136,64,2,195,144,76,139,2,139,74,8,68,15,182,74,12,76,137,0,137,72,8,68,136,72,12,195,76,139,2,15,183,74,8,76,137,0,102,137,72,8,195,76,139,2,15,182,74,8, - 76,137,0,136,72,8,195,76,139,2,139,74,8,76,137,0,137,72,8,195,139,10,68,15,183,66,4,137,8,102,68,137,64,4,195,139,10,68,15,182,66,4,137,8,68,136,64,4,195,72,139,10,72,137,8,195,15,182,10,136,8,195,139,10,137,8,195,144,73,131,248,32,119,23,243, - 15,111,10,243,66,15,111,84,2,240,243,15,127,9,243,66,15,127,84,1,240,195,72,59,209,115,14,78,141,12,2,73,59,201,15,130,65,4,0,0,144,131,61,129,89,1,0,3,15,130,227,2,0,0,73,129,248,0,32,0,0,118,22,73,129,248,0,0,24,0,119,13,246,5,82,101,1,0,2, - 15,133,100,254,255,255,197,254,111,2,196,161,126,111,108,2,224,73,129,248,0,1,0,0,15,134,196,0,0,0,76,139,201,73,131,225,31,73,131,233,32,73,43,201,73,43,209,77,3,193,73,129,248,0,1,0,0,15,134,163,0,0,0,73,129,248,0,0,24,0,15,135,62,1,0,0,102, - 102,102,102,102,102,15,31,132,0,0,0,0,0,197,254,111,10,197,254,111,82,32,197,254,111,90,64,197,254,111,98,96,197,253,127,9,197,253,127,81,32,197,253,127,89,64,197,253,127,97,96,197,254,111,138,128,0,0,0,197,254,111,146,160,0,0,0,197,254,111, - 154,192,0,0,0,197,254,111,162,224,0,0,0,197,253,127,137,128,0,0,0,197,253,127,145,160,0,0,0,197,253,127,153,192,0,0,0,197,253,127,161,224,0,0,0,72,129,193,0,1,0,0,72,129,194,0,1,0,0,73,129,232,0,1,0,0,73,129,248,0,1,0,0,15,131,120,255,255,255, - 77,141,72,31,73,131,225,224,77,139,217,73,193,235,5,71,139,156,154,240,160,2,0,77,3,218,65,255,227,196,161,126,111,140,10,0,255,255,255,196,161,126,127,140,9,0,255,255,255,196,161,126,111,140,10,32,255,255,255,196,161,126,127,140,9,32,255,255, - 255,196,161,126,111,140,10,64,255,255,255,196,161,126,127,140,9,64,255,255,255,196,161,126,111,140,10,96,255,255,255,196,161,126,127,140,9,96,255,255,255,196,161,126,111,76,10,128,196,161,126,127,76,9,128,196,161,126,111,76,10,160,196,161,126, - 127,76,9,160,196,161,126,111,76,10,192,196,161,126,127,76,9,192,196,161,126,127,108,1,224,197,254,127,0,197,248,119,195,102,144,197,254,111,10,197,254,111,82,32,197,254,111,90,64,197,254,111,98,96,197,253,231,9,197,253,231,81,32,197,253,231, - 89,64,197,253,231,97,96,197,254,111,138,128,0,0,0,197,254,111,146,160,0,0,0,197,254,111,154,192,0,0,0,197,254,111,162,224,0,0,0,197,253,231,137,128,0,0,0,197,253,231,145,160,0,0,0,197,253,231,153,192,0,0,0,197,253,231,161,224,0,0,0,72,129,193, - 0,1,0,0,72,129,194,0,1,0,0,73,129,232,0,1,0,0,73,129,248,0,1,0,0,15,131,120,255,255,255,77,141,72,31,73,131,225,224,77,139,217,73,193,235,5,71,139,156,154,20,161,2,0,77,3,218,65,255,227,196,161,126,111,140,10,0,255,255,255,196,161,125,231,140, - 9,0,255,255,255,196,161,126,111,140,10,32,255,255,255,196,161,125,231,140,9,32,255,255,255,196,161,126,111,140,10,64,255,255,255,196,161,125,231,140,9,64,255,255,255,196,161,126,111,140,10,96,255,255,255,196,161,125,231,140,9,96,255,255,255, - 196,161,126,111,76,10,128,196,161,125,231,76,9,128,196,161,126,111,76,10,160,196,161,125,231,76,9,160,196,161,126,111,76,10,192,196,161,125,231,76,9,192,196,161,126,127,108,1,224,197,254,127,0,15,174,248,197,248,119,195,102,102,102,102,102,102, - 102,15,31,132,0,0,0,0,0,73,129,248,0,8,0,0,118,13,246,5,120,98,1,0,2,15,133,138,251,255,255,243,15,111,2,243,66,15,111,108,2,240,73,129,248,128,0,0,0,15,134,142,0,0,0,76,139,201,73,131,225,15,73,131,233,16,73,43,201,73,43,209,77,3,193,73,129, - 248,128,0,0,0,118,113,15,31,68,0,0,243,15,111,10,243,15,111,82,16,243,15,111,90,32,243,15,111,98,48,102,15,127,9,102,15,127,81,16,102,15,127,89,32,102,15,127,97,48,243,15,111,74,64,243,15,111,82,80,243,15,111,90,96,243,15,111,98,112,102,15,127, - 73,64,102,15,127,81,80,102,15,127,89,96,102,15,127,97,112,72,129,193,128,0,0,0,72,129,194,128,0,0,0,73,129,232,128,0,0,0,73,129,248,128,0,0,0,115,148,77,141,72,15,73,131,225,240,77,139,217,73,193,235,4,71,139,156,154,56,161,2,0,77,3,218,65,255, - 227,243,66,15,111,76,10,128,243,66,15,127,76,9,128,243,66,15,111,76,10,144,243,66,15,127,76,9,144,243,66,15,111,76,10,160,243,66,15,127,76,9,160,243,66,15,111,76,10,176,243,66,15,127,76,9,176,243,66,15,111,76,10,192,243,66,15,127,76,9,192,243, - 66,15,111,76,10,208,243,66,15,127,76,9,208,243,66,15,111,76,10,224,243,66,15,127,76,9,224,243,66,15,127,108,1,240,243,15,127,0,195,102,15,31,132,0,0,0,0,0,76,139,217,76,139,210,72,43,209,73,3,200,15,16,68,17,240,72,131,233,16,73,131,232,16,246, - 193,15,116,23,72,139,193,72,131,225,240,15,16,200,15,16,4,17,15,17,8,76,139,193,77,43,195,77,139,200,73,193,233,7,116,111,15,41,1,235,20,102,102,102,102,102,15,31,132,0,0,0,0,0,15,41,65,16,15,41,9,15,16,68,17,240,15,16,76,17,224,72,129,233,128, - 0,0,0,15,41,65,112,15,41,73,96,15,16,68,17,80,15,16,76,17,64,73,255,201,15,41,65,80,15,41,73,64,15,16,68,17,48,15,16,76,17,32,15,41,65,48,15,41,73,32,15,16,68,17,16,15,16,12,17,117,174,15,41,65,16,73,131,224,127,15,40,193,77,139,200,73,193,233, - 4,116,26,102,102,15,31,132,0,0,0,0,0,15,17,1,72,131,233,16,15,16,4,17,73,255,201,117,240,73,131,224,15,116,8,65,15,16,10,65,15,17,11,15,17,1,73,139,195,195,204,204,204,64,83,72,131,236,32,51,219,72,133,201,116,12,72,133,210,116,7,77,133,192, - 117,27,136,25,232,74,41,0,0,187,22,0,0,0,137,24,232,142,28,0,0,139,195,72,131,196,32,91,195,76,139,201,76,43,193,67,138,4,8,65,136,1,73,255,193,132,192,116,228,72,131,234,1,117,236,72,133,210,117,217,136,25,232,16,41,0,0,187,34,0,0,0,235,196, - 204,64,83,72,131,236,32,51,219,72,141,21,193,98,1,0,69,51,192,72,141,12,155,72,141,12,202,186,160,15,0,0,232,64,63,0,0,133,192,116,17,255,5,202,98,1,0,255,195,131,251,1,114,211,176,1,235,7,232,10,0,0,0,50,192,72,131,196,32,91,195,204,204,64, - 83,72,131,236,32,139,29,164,98,1,0,235,29,72,141,5,115,98,1,0,255,203,72,141,12,155,72,141,12,200,255,21,43,43,1,0,255,13,133,98,1,0,133,219,117,223,176,1,72,131,196,32,91,195,204,204,204,204,204,204,204,204,204,72,137,124,36,8,72,139,5,140, - 83,1,0,72,141,61,29,99,1,0,185,31,0,0,0,243,72,171,72,139,124,36,8,176,1,195,204,204,204,204,204,204,204,204,204,204,204,204,204,64,83,72,131,236,32,132,201,117,47,72,141,29,63,98,1,0,72,139,11,72,133,201,116,16,72,131,249,255,116,6,255,21,35, - 43,1,0,72,131,35,0,72,131,195,8,72,141,5,196,98,1,0,72,59,216,117,216,176,1,72,131,196,32,91,195,204,204,204,72,131,236,40,76,141,13,221,173,0,0,51,201,76,141,5,208,173,0,0,72,141,21,209,173,0,0,232,88,2,0,0,72,133,192,116,21,73,186,112,48,82, - 94,71,39,5,211,72,131,196,40,72,255,37,2,36,1,0,184,1,0,0,0,72,131,196,40,195,72,255,37,137,42,1,0,204,72,255,37,137,42,1,0,204,72,255,37,137,42,1,0,204,72,255,37,137,42,1,0,204,72,137,92,36,8,72,137,116,36,16,87,72,131,236,32,65,139,240,76, - 141,13,135,173,0,0,139,218,76,141,5,118,173,0,0,72,139,249,72,141,21,116,173,0,0,185,15,0,0,0,232,222,1,0,0,72,133,192,116,26,73,186,112,218,210,50,80,62,160,130,68,139,198,139,211,72,139,207,255,21,133,35,1,0,235,11,139,211,72,139,207,255,21, - 48,43,1,0,72,139,92,36,48,72,139,116,36,56,72,131,196,32,95,195,72,137,92,36,8,72,137,108,36,16,72,137,116,36,24,87,72,131,236,80,65,139,217,73,139,248,139,242,76,141,13,53,173,0,0,72,139,233,76,141,5,35,173,0,0,72,141,21,36,173,0,0,185,17,0, - 0,0,232,102,1,0,0,76,139,216,72,133,192,116,95,73,186,112,226,87,80,98,31,161,227,72,139,148,36,160,0,0,0,68,139,203,72,139,140,36,152,0,0,0,76,139,199,72,139,132,36,128,0,0,0,72,137,84,36,64,139,214,72,137,76,36,56,72,139,140,36,144,0,0,0,72, - 137,76,36,48,139,140,36,136,0,0,0,137,76,36,40,72,139,205,72,137,68,36,32,73,139,195,255,21,197,34,1,0,235,50,51,210,72,139,205,232,61,0,0,0,139,200,68,139,203,139,132,36,136,0,0,0,76,139,199,137,68,36,40,139,214,72,139,132,36,128,0,0,0,72,137, - 68,36,32,255,21,121,42,1,0,72,139,92,36,96,72,139,108,36,104,72,139,116,36,112,72,131,196,80,95,195,72,137,92,36,8,87,72,131,236,32,139,250,76,141,13,113,172,0,0,72,139,217,72,141,21,103,172,0,0,185,19,0,0,0,76,141,5,83,172,0,0,232,138,0,0,0, - 72,133,192,116,23,73,186,112,50,216,84,35,6,221,234,139,215,72,139,203,255,21,52,34,1,0,235,8,72,139,203,232,38,67,0,0,72,139,92,36,48,72,131,196,32,95,195,204,204,204,64,83,72,131,236,32,72,139,217,76,141,13,44,172,0,0,185,25,0,0,0,76,141,5, - 28,172,0,0,72,141,21,25,172,0,0,232,48,0,0,0,72,133,192,116,32,73,186,112,192,209,52,218,23,192,189,72,139,211,72,199,193,250,255,255,255,72,131,196,32,91,72,255,37,207,33,1,0,184,37,2,0,192,72,131,196,32,91,195,72,137,92,36,8,72,137,108,36, - 16,72,137,116,36,24,87,65,84,65,85,65,86,65,87,72,131,236,32,68,139,249,76,141,53,94,48,255,255,72,131,207,255,77,139,225,73,139,232,76,139,234,79,139,148,254,192,47,2,0,144,76,139,29,105,80,1,0,77,51,211,65,139,203,131,225,63,73,211,202,76, - 59,215,15,132,235,0,0,0,77,133,210,116,8,73,139,194,233,224,0,0,0,77,59,196,15,132,186,0,0,0,139,117,0,73,139,156,246,16,47,2,0,144,72,133,219,116,14,72,59,223,15,133,250,0,0,0,233,135,0,0,0,77,139,180,246,32,117,1,0,51,210,73,139,206,65,184, - 0,8,0,0,255,21,30,41,1,0,72,139,216,72,133,192,15,133,176,0,0,0,255,21,68,40,1,0,131,248,87,117,69,141,88,176,73,139,206,68,139,195,72,141,21,127,170,0,0,232,194,65,0,0,133,192,116,44,68,139,195,72,141,21,124,170,0,0,73,139,206,232,172,65,0, - 0,133,192,116,22,69,51,192,51,210,73,139,206,255,21,202,40,1,0,72,139,216,72,133,192,117,96,72,139,199,76,141,53,120,47,255,255,73,135,132,246,16,47,2,0,72,131,197,4,73,59,236,15,133,77,255,255,255,76,139,29,132,79,1,0,65,139,195,185,64,0,0, - 0,131,224,63,43,200,72,211,207,73,51,251,75,135,188,254,192,47,2,0,51,192,72,139,92,36,80,72,139,108,36,88,72,139,116,36,96,72,131,196,32,65,95,65,94,65,93,65,92,95,195,72,139,195,76,141,53,24,47,255,255,73,135,132,246,16,47,2,0,72,133,192,116, - 9,72,139,203,255,21,10,39,1,0,73,139,213,72,139,203,255,21,150,39,1,0,72,133,192,116,142,76,139,5,18,79,1,0,186,64,0,0,0,65,139,200,131,225,63,43,209,138,202,72,139,208,72,211,202,73,51,208,75,135,148,254,192,47,2,0,235,137,204,204,204,204,204, - 204,204,204,64,83,72,131,236,32,51,219,72,141,21,113,95,1,0,69,51,192,72,141,12,155,72,141,12,202,186,160,15,0,0,232,4,252,255,255,133,192,116,17,255,5,130,97,1,0,255,195,131,251,14,114,211,176,1,235,9,51,201,232,16,0,0,0,50,192,72,131,196,32, - 91,195,204,204,204,204,204,204,204,204,64,83,72,131,236,32,139,29,84,97,1,0,235,29,72,141,5,27,95,1,0,255,203,72,141,12,155,72,141,12,200,255,21,235,37,1,0,255,13,53,97,1,0,133,219,117,223,176,1,72,131,196,32,91,195,204,72,99,193,72,141,12,128, - 72,141,5,234,94,1,0,72,141,12,200,72,255,37,207,37,1,0,204,204,204,72,99,193,72,141,12,128,72,141,5,206,94,1,0,72,141,12,200,72,255,37,51,39,1,0,204,204,204,72,131,236,40,255,21,158,38,1,0,72,133,192,72,137,5,228,96,1,0,15,149,192,72,131,196, - 40,195,204,204,204,204,72,131,37,208,96,1,0,0,176,1,195,204,204,204,204,204,72,131,236,40,72,141,13,165,3,0,0,232,8,251,255,255,137,5,250,77,1,0,131,248,255,117,4,50,192,235,21,232,184,1,0,0,72,133,192,117,9,51,201,232,16,0,0,0,235,233,176,1, - 72,131,196,40,195,204,204,204,204,204,204,204,72,131,236,40,139,13,198,77,1,0,131,249,255,116,12,232,204,250,255,255,131,13,181,77,1,0,255,176,1,72,131,196,40,195,204,204,72,137,92,36,8,72,137,116,36,16,87,72,131,236,32,255,21,207,37,1,0,139, - 13,145,77,1,0,51,246,139,216,131,249,255,116,29,232,155,250,255,255,72,139,248,72,133,192,116,10,72,131,248,255,72,15,68,254,235,114,139,13,107,77,1,0,72,131,202,255,232,130,250,255,255,133,192,117,5,72,139,254,235,90,186,200,3,0,0,185,1,0,0, - 0,232,14,35,0,0,139,13,68,77,1,0,72,139,248,72,133,192,117,16,51,210,232,85,250,255,255,51,201,232,54,20,0,0,235,206,72,139,215,232,68,250,255,255,133,192,117,18,139,13,26,77,1,0,51,210,232,51,250,255,255,72,139,207,235,219,72,139,207,232,46, - 3,0,0,51,201,232,7,20,0,0,139,203,255,21,119,38,1,0,72,133,255,116,19,72,139,92,36,48,72,139,199,72,139,116,36,56,72,131,196,32,95,195,232,246,189,255,255,204,204,64,83,72,131,236,32,139,13,204,76,1,0,131,249,255,116,27,232,218,249,255,255,72, - 139,216,72,133,192,116,8,72,131,248,255,116,120,235,109,139,13,172,76,1,0,72,131,202,255,232,195,249,255,255,133,192,116,99,186,200,3,0,0,185,1,0,0,0,232,84,34,0,0,139,13,138,76,1,0,72,139,216,72,133,192,117,16,51,210,232,155,249,255,255,51, - 201,232,124,19,0,0,235,54,72,139,211,232,138,249,255,255,133,192,117,18,139,13,96,76,1,0,51,210,232,121,249,255,255,72,139,203,235,219,72,139,203,232,116,2,0,0,51,201,232,77,19,0,0,72,139,195,72,131,196,32,91,195,232,83,189,255,255,204,204,204, - 72,137,92,36,8,72,137,116,36,16,87,72,131,236,32,255,21,87,36,1,0,139,13,25,76,1,0,51,246,139,216,131,249,255,116,29,232,35,249,255,255,72,139,248,72,133,192,116,10,72,131,248,255,72,15,68,254,235,114,139,13,243,75,1,0,72,131,202,255,232,10, - 249,255,255,133,192,117,5,72,139,254,235,90,186,200,3,0,0,185,1,0,0,0,232,150,33,0,0,139,13,204,75,1,0,72,139,248,72,133,192,117,16,51,210,232,221,248,255,255,51,201,232,190,18,0,0,235,206,72,139,215,232,204,248,255,255,133,192,117,18,139,13, - 162,75,1,0,51,210,232,187,248,255,255,72,139,207,235,219,72,139,207,232,182,1,0,0,51,201,232,143,18,0,0,139,203,255,21,255,36,1,0,72,139,92,36,48,72,139,199,72,139,116,36,56,72,131,196,32,95,195,64,83,72,131,236,32,139,13,96,75,1,0,131,249,255, - 116,42,232,110,248,255,255,72,139,216,72,133,192,116,29,139,13,72,75,1,0,51,210,232,97,248,255,255,72,139,203,232,49,2,0,0,72,139,203,232,57,18,0,0,72,131,196,32,91,195,204,204,204,72,137,92,36,8,72,137,116,36,16,87,72,131,236,32,139,13,19,75, - 1,0,51,219,72,139,242,131,249,255,116,27,232,28,248,255,255,72,139,248,72,133,192,116,8,72,131,248,255,116,121,235,109,139,13,238,74,1,0,72,131,202,255,232,5,248,255,255,133,192,116,100,186,200,3,0,0,185,1,0,0,0,232,150,32,0,0,139,13,204,74, - 1,0,72,139,248,72,133,192,117,16,51,210,232,221,247,255,255,51,201,232,190,17,0,0,235,55,72,139,215,232,204,247,255,255,133,192,117,18,139,13,162,74,1,0,51,210,232,187,247,255,255,72,139,207,235,219,72,139,207,232,182,0,0,0,51,201,232,143,17, - 0,0,72,105,222,200,3,0,0,72,3,223,72,139,116,36,56,72,139,195,72,139,92,36,48,72,131,196,32,95,195,204,204,204,204,204,204,204,204,204,204,72,133,201,116,26,83,72,131,236,32,72,139,217,232,70,1,0,0,72,139,203,232,78,17,0,0,72,131,196,32,91,195, - 72,137,92,36,8,87,72,131,236,32,72,139,249,72,139,218,72,139,137,144,0,0,0,72,133,201,116,44,232,75,61,0,0,72,139,143,144,0,0,0,72,59,13,89,97,1,0,116,23,72,141,5,88,79,1,0,72,59,200,116,11,131,121,16,0,117,5,232,204,61,0,0,72,137,159,144,0, - 0,0,72,133,219,116,8,72,139,203,232,132,60,0,0,72,139,92,36,48,72,131,196,32,95,195,204,64,85,72,139,236,72,131,236,80,72,137,77,216,72,141,69,216,72,137,69,232,76,141,77,32,186,1,0,0,0,76,141,69,232,184,5,0,0,0,137,69,32,137,69,40,72,141,69, - 216,72,137,69,240,72,141,69,224,72,137,69,248,184,4,0,0,0,137,69,208,137,69,212,72,141,5,209,96,1,0,72,137,69,224,137,81,40,72,141,13,123,143,0,0,72,139,69,216,72,137,8,72,141,13,125,73,1,0,72,139,69,216,137,144,168,3,0,0,72,139,69,216,72,137, - 136,136,0,0,0,141,74,66,72,139,69,216,72,141,85,40,102,137,136,188,0,0,0,72,139,69,216,102,137,136,194,1,0,0,72,141,77,24,72,139,69,216,72,131,160,160,3,0,0,0,232,22,1,0,0,76,141,77,208,76,141,69,240,72,141,85,212,72,141,77,24,232,65,1,0,0,72, - 131,196,80,93,195,204,204,204,64,85,72,139,236,72,131,236,64,72,141,69,232,72,137,77,232,72,137,69,240,72,141,21,236,142,0,0,184,5,0,0,0,137,69,32,137,69,40,72,141,69,232,72,137,69,248,184,4,0,0,0,137,69,224,137,69,228,72,139,1,72,59,194,116, - 12,72,139,200,232,198,15,0,0,72,139,77,232,72,139,73,112,232,185,15,0,0,72,139,77,232,72,139,73,88,232,172,15,0,0,72,139,77,232,72,139,73,96,232,159,15,0,0,72,139,77,232,72,139,73,104,232,146,15,0,0,72,139,77,232,72,139,73,72,232,133,15,0,0, - 72,139,77,232,72,139,73,80,232,120,15,0,0,72,139,77,232,72,139,73,120,232,107,15,0,0,72,139,77,232,72,139,137,128,0,0,0,232,91,15,0,0,72,139,77,232,72,139,137,192,3,0,0,232,75,15,0,0,76,141,77,32,76,141,69,240,72,141,85,40,72,141,77,24,232,166, - 0,0,0,76,141,77,224,76,141,69,248,72,141,85,228,72,141,77,24,232,241,0,0,0,72,131,196,64,93,195,204,204,204,72,137,92,36,8,76,137,76,36,32,87,72,131,236,32,73,139,217,73,139,248,139,10,232,124,249,255,255,144,72,139,7,72,139,8,72,139,129,136, - 0,0,0,240,255,0,139,11,232,128,249,255,255,72,139,92,36,48,72,131,196,32,95,195,204,72,137,92,36,8,76,137,76,36,32,87,72,131,236,32,73,139,217,73,139,248,139,10,232,60,249,255,255,144,72,139,71,8,72,139,16,72,139,15,72,139,18,72,139,9,232,94, - 253,255,255,144,139,11,232,58,249,255,255,72,139,92,36,48,72,131,196,32,95,195,204,204,204,72,137,92,36,8,76,137,76,36,32,87,72,131,236,32,73,139,217,73,139,248,139,10,232,244,248,255,255,144,72,139,7,72,139,8,72,139,137,136,0,0,0,72,133,201, - 116,30,131,200,255,240,15,193,1,131,248,1,117,18,72,141,5,86,71,1,0,72,59,200,116,6,232,68,14,0,0,144,139,11,232,216,248,255,255,72,139,92,36,48,72,131,196,32,95,195,204,72,137,92,36,8,76,137,76,36,32,87,72,131,236,32,73,139,217,73,139,248,139, - 10,232,148,248,255,255,144,72,139,15,51,210,72,139,9,232,190,252,255,255,144,139,11,232,154,248,255,255,72,139,92,36,48,72,131,196,32,95,195,204,204,204,204,204,204,204,204,204,204,204,64,83,72,131,236,32,185,7,0,0,0,232,88,248,255,255,51,219, - 51,201,232,159,63,0,0,133,192,117,12,232,94,0,0,0,232,73,1,0,0,179,1,185,7,0,0,0,232,81,248,255,255,138,195,72,131,196,32,91,195,204,204,204,204,204,72,137,92,36,8,87,72,131,236,32,51,219,72,141,61,77,89,1,0,72,139,12,59,72,133,201,116,10,232, - 7,63,0,0,72,131,36,59,0,72,131,195,8,72,129,251,0,4,0,0,114,217,72,139,92,36,48,176,1,72,131,196,32,95,195,72,139,196,72,137,88,8,72,137,104,16,72,137,112,24,72,137,120,32,65,86,72,129,236,144,0,0,0,72,141,72,136,255,21,170,30,1,0,69,51,246, - 102,68,57,116,36,98,15,132,154,0,0,0,72,139,68,36,104,72,133,192,15,132,140,0,0,0,72,99,24,72,141,112,4,191,0,32,0,0,72,3,222,57,56,15,76,56,139,207,232,218,62,0,0,59,61,188,92,1,0,15,79,61,181,92,1,0,133,255,116,96,65,139,238,72,131,59,255, - 116,71,72,131,59,254,116,65,246,6,1,116,60,246,6,8,117,13,72,139,11,255,21,255,29,1,0,133,192,116,42,72,139,197,76,141,5,129,88,1,0,72,139,205,72,193,249,6,131,224,63,73,139,12,200,72,141,20,192,72,139,3,72,137,68,209,40,138,6,136,68,209,56, - 72,255,197,72,255,198,72,131,195,8,72,131,239,1,117,163,76,141,156,36,144,0,0,0,73,139,91,16,73,139,107,24,73,139,115,32,73,139,123,40,73,139,227,65,94,195,204,204,204,72,139,196,72,137,88,8,72,137,104,16,72,137,112,24,72,137,120,32,65,86,72, - 131,236,32,51,246,69,51,246,72,99,206,72,141,61,8,88,1,0,72,139,193,131,225,63,72,193,248,6,72,141,28,201,72,139,60,199,72,139,68,223,40,72,131,192,2,72,131,248,1,118,10,128,76,223,56,128,233,139,0,0,0,198,68,223,56,129,139,206,133,246,116,22, - 131,233,1,116,10,131,249,1,185,244,255,255,255,235,12,185,245,255,255,255,235,5,185,246,255,255,255,255,21,105,29,1,0,72,139,232,72,141,72,1,72,131,249,1,118,45,72,139,200,255,21,11,29,1,0,133,192,116,32,15,182,192,72,137,108,223,40,131,248, - 2,117,7,128,76,223,56,64,235,49,131,248,3,117,44,128,76,223,56,8,235,37,128,76,223,56,64,72,199,68,223,40,254,255,255,255,72,139,5,250,91,1,0,72,133,192,116,11,73,139,4,6,199,64,24,254,255,255,255,255,198,73,131,198,8,131,254,3,15,133,49,255, - 255,255,72,139,92,36,48,72,139,108,36,56,72,139,116,36,64,72,139,124,36,72,72,131,196,32,65,94,195,204,204,204,204,204,204,204,204,72,131,236,40,255,21,54,28,1,0,72,137,5,55,91,1,0,255,21,49,28,1,0,72,137,5,50,91,1,0,176,1,72,131,196,40,195, - 204,204,204,204,204,204,204,204,204,204,204,176,1,195,204,72,131,236,40,232,119,246,255,255,72,141,21,36,91,1,0,72,139,200,72,131,196,40,233,56,4,0,0,72,131,236,40,128,61,25,91,1,0,0,117,76,72,141,13,76,71,1,0,72,137,13,245,90,1,0,72,141,5,254, - 67,1,0,72,141,13,39,70,1,0,72,137,5,232,90,1,0,72,137,13,209,90,1,0,232,252,246,255,255,76,141,13,213,90,1,0,76,139,192,178,1,185,253,255,255,255,232,158,4,0,0,198,5,203,90,1,0,1,176,1,72,131,196,40,195,72,137,92,36,24,72,137,108,36,32,86,87, - 65,84,65,86,65,87,72,131,236,64,72,139,5,123,67,1,0,72,51,196,72,137,68,36,56,72,139,242,232,147,2,0,0,51,219,139,248,133,192,15,132,84,2,0,0,76,141,37,208,71,1,0,68,139,243,73,139,196,141,107,1,57,56,15,132,70,1,0,0,68,3,245,72,131,192,48,65, - 131,254,5,114,235,129,255,232,253,0,0,15,132,37,1,0,0,15,183,207,255,21,29,28,1,0,133,192,15,132,20,1,0,0,184,233,253,0,0,59,248,117,38,72,137,70,4,72,137,158,32,2,0,0,137,94,24,102,137,94,28,72,141,126,12,15,183,195,185,6,0,0,0,102,243,171, - 233,217,1,0,0,72,141,84,36,32,139,207,255,21,209,26,1,0,133,192,15,132,196,0,0,0,72,141,78,24,51,210,65,184,1,1,0,0,232,128,139,255,255,131,124,36,32,2,137,126,4,72,137,158,32,2,0,0,15,133,148,0,0,0,72,141,76,36,38,56,92,36,38,116,44,56,89,1, - 116,39,15,182,65,1,15,182,17,59,208,119,20,43,194,141,122,1,141,20,40,128,76,55,24,4,3,253,72,43,213,117,244,72,131,193,2,56,25,117,212,72,141,70,26,185,254,0,0,0,128,8,8,72,3,197,72,43,205,117,245,139,78,4,129,233,164,3,0,0,116,46,131,233,4, - 116,32,131,233,13,116,18,59,205,116,5,72,139,195,235,34,72,139,5,187,157,0,0,235,25,72,139,5,170,157,0,0,235,16,72,139,5,153,157,0,0,235,7,72,139,5,136,157,0,0,72,137,134,32,2,0,0,235,2,139,235,137,110,8,233,19,255,255,255,57,29,55,89,1,0,15, - 133,254,0,0,0,131,200,255,233,0,1,0,0,72,141,78,24,51,210,65,184,1,1,0,0,232,168,138,255,255,65,139,198,77,141,76,36,16,76,141,29,73,70,1,0,65,190,4,0,0,0,76,141,60,64,73,193,231,4,77,3,207,73,139,209,65,56,25,116,62,56,90,1,116,57,68,15,182, - 2,15,182,66,1,68,59,192,119,36,69,141,80,1,65,129,250,1,1,0,0,115,23,65,138,3,68,3,197,65,8,68,50,24,68,3,213,15,182,66,1,68,59,192,118,224,72,131,194,2,56,26,117,194,73,131,193,8,76,3,221,76,43,245,117,174,137,126,4,137,110,8,129,239,164,3, - 0,0,116,41,131,239,4,116,27,131,239,13,116,13,59,253,117,34,72,139,29,211,156,0,0,235,25,72,139,29,194,156,0,0,235,16,72,139,29,177,156,0,0,235,7,72,139,29,160,156,0,0,73,141,124,36,4,72,137,158,32,2,0,0,73,3,255,72,141,86,12,185,6,0,0,0,15, - 183,7,72,141,127,2,102,137,2,72,141,82,2,72,43,205,117,237,72,139,206,232,117,4,0,0,235,8,72,139,206,232,171,0,0,0,51,192,72,139,76,36,56,72,51,204,232,172,229,255,255,76,141,92,36,64,73,139,91,64,73,139,107,72,73,139,227,65,95,65,94,65,92,95, - 94,195,204,204,204,64,83,72,131,236,64,139,217,51,210,72,141,76,36,32,232,160,162,255,255,131,37,229,87,1,0,0,131,251,254,117,18,199,5,214,87,1,0,1,0,0,0,255,21,24,25,1,0,235,21,131,251,253,117,20,199,5,191,87,1,0,1,0,0,0,255,21,121,24,1,0,139, - 216,235,23,131,251,252,117,18,72,139,68,36,40,199,5,161,87,1,0,1,0,0,0,139,88,12,128,124,36,56,0,116,12,72,139,76,36,32,131,161,168,3,0,0,253,139,195,72,131,196,64,91,195,204,204,204,72,137,92,36,8,87,72,131,236,32,72,139,217,51,210,72,131,193, - 24,65,184,1,1,0,0,232,242,136,255,255,51,210,72,141,123,12,15,183,194,76,141,13,82,64,1,0,72,137,83,4,76,139,195,72,137,147,32,2,0,0,141,74,6,102,243,171,72,141,5,79,64,1,0,139,250,76,43,192,74,141,12,15,72,255,199,138,65,24,65,136,68,8,48,72, - 129,255,1,1,0,0,124,232,72,141,5,44,65,1,0,72,43,216,74,141,12,10,72,255,194,138,129,25,1,0,0,136,132,11,50,2,0,0,72,129,250,0,1,0,0,124,227,72,139,92,36,48,72,131,196,32,95,195,72,137,92,36,16,72,137,116,36,24,87,72,131,236,32,72,139,242,72, - 139,249,139,5,161,71,1,0,133,129,168,3,0,0,116,19,72,131,185,144,0,0,0,0,116,9,72,139,153,136,0,0,0,235,100,185,5,0,0,0,232,32,241,255,255,144,72,139,159,136,0,0,0,72,137,92,36,48,72,59,30,116,62,72,133,219,116,34,131,200,255,240,15,193,3,131, - 248,1,117,22,72,141,5,126,63,1,0,72,139,76,36,48,72,59,200,116,5,232,103,6,0,0,72,139,6,72,137,135,136,0,0,0,72,137,68,36,48,240,255,0,72,139,92,36,48,185,5,0,0,0,232,226,240,255,255,72,133,219,116,19,72,139,195,72,139,92,36,56,72,139,116,36, - 64,72,131,196,32,95,195,232,61,176,255,255,144,72,139,196,72,137,88,8,72,137,112,16,76,137,72,32,76,137,64,24,85,87,65,86,72,141,168,120,254,255,255,72,129,236,112,2,0,0,68,138,242,139,217,73,139,209,73,139,200,232,19,255,255,255,139,203,232, - 244,253,255,255,72,139,141,160,1,0,0,139,248,76,139,129,136,0,0,0,65,59,64,4,117,7,51,192,233,254,1,0,0,185,40,2,0,0,232,9,40,0,0,72,139,216,72,133,192,117,15,51,201,232,182,5,0,0,131,200,255,233,221,1,0,0,72,139,133,160,1,0,0,72,141,76,36,64, - 186,4,0,0,0,68,139,194,72,139,128,136,0,0,0,68,141,74,124,15,16,0,15,16,72,16,15,17,1,15,16,64,32,15,17,73,16,15,16,72,48,15,17,65,32,15,16,64,64,15,17,73,48,15,16,72,80,15,17,65,64,15,16,64,96,15,17,73,80,15,16,72,112,73,3,193,15,17,65,96,73, - 3,201,15,17,73,240,73,131,232,1,117,182,15,16,0,15,16,72,16,72,139,64,32,15,17,1,15,17,73,16,72,137,65,32,72,139,203,72,141,68,36,64,15,16,0,15,16,72,16,15,17,1,15,16,64,32,15,17,73,16,15,16,72,48,15,17,65,32,15,16,64,64,15,17,73,48,15,16,72, - 80,15,17,65,64,15,16,64,96,15,17,73,80,15,16,72,112,73,3,193,15,17,65,96,73,3,201,15,17,73,240,72,131,234,1,117,182,15,16,0,15,16,72,16,72,139,64,32,15,17,1,15,17,73,16,72,137,65,32,139,207,33,19,72,139,211,232,3,250,255,255,131,207,255,139, - 240,59,199,117,26,232,117,18,0,0,72,139,203,199,0,22,0,0,0,232,159,4,0,0,139,199,233,199,0,0,0,69,132,246,117,5,232,182,37,0,0,72,139,133,160,1,0,0,72,139,136,136,0,0,0,139,199,240,15,193,1,3,199,117,31,72,139,133,160,1,0,0,72,139,136,136,0, - 0,0,72,141,5,105,61,1,0,72,59,200,116,5,232,87,4,0,0,199,3,1,0,0,0,72,139,133,160,1,0,0,72,137,152,136,0,0,0,72,139,133,160,1,0,0,139,136,168,3,0,0,133,13,12,69,1,0,117,84,72,141,133,160,1,0,0,72,137,68,36,48,76,141,76,36,36,72,141,133,168,1, - 0,0,72,137,68,36,56,76,141,68,36,48,184,5,0,0,0,72,141,84,36,40,72,141,76,36,32,137,68,36,36,137,68,36,40,232,32,2,0,0,69,132,246,116,17,72,139,133,168,1,0,0,72,139,8,72,137,13,130,67,1,0,51,201,232,211,3,0,0,139,198,76,141,156,36,112,2,0,0, - 73,139,91,32,73,139,115,40,73,139,227,65,94,95,93,195,204,72,137,92,36,16,72,137,124,36,24,85,72,141,172,36,128,249,255,255,72,129,236,128,7,0,0,72,139,5,119,60,1,0,72,51,196,72,137,133,112,6,0,0,72,139,249,139,73,4,129,249,233,253,0,0,15,132, - 71,1,0,0,72,141,84,36,80,255,21,64,20,1,0,133,192,15,132,52,1,0,0,51,192,72,141,76,36,112,187,0,1,0,0,136,1,255,192,72,255,193,59,195,114,245,138,68,36,86,72,141,84,36,86,198,68,36,112,32,235,32,68,15,182,66,1,15,182,200,235,11,59,203,115,12, - 198,68,12,112,32,255,193,65,59,200,118,240,72,131,194,2,138,2,132,192,117,220,139,71,4,76,141,68,36,112,131,100,36,48,0,68,139,203,137,68,36,40,186,1,0,0,0,72,141,133,112,2,0,0,51,201,72,137,68,36,32,232,185,53,0,0,131,100,36,64,0,76,141,76, - 36,112,139,71,4,68,139,195,72,139,151,32,2,0,0,51,201,137,68,36,56,72,141,69,112,137,92,36,48,72,137,68,36,40,137,92,36,32,232,22,55,0,0,131,100,36,64,0,76,141,76,36,112,139,71,4,65,184,0,2,0,0,72,139,151,32,2,0,0,51,201,137,68,36,56,72,141, - 133,112,1,0,0,137,92,36,48,72,137,68,36,40,137,92,36,32,232,221,54,0,0,76,141,69,112,76,43,199,76,141,141,112,1,0,0,76,43,207,72,141,149,112,2,0,0,72,141,71,25,246,2,1,116,10,128,8,16,65,138,76,0,231,235,17,246,2,2,116,10,128,8,32,65,138,76, - 1,231,235,2,50,201,136,136,0,1,0,0,72,131,194,2,72,255,192,72,131,235,1,117,205,235,63,51,210,72,141,79,25,187,0,1,0,0,68,141,66,159,65,141,64,32,131,248,25,119,8,128,9,16,141,66,32,235,16,65,131,248,25,119,8,128,9,32,141,66,224,235,2,50,192, - 136,129,0,1,0,0,255,194,72,255,193,59,211,114,204,72,139,141,112,6,0,0,72,51,204,232,126,223,255,255,76,141,156,36,128,7,0,0,73,139,91,24,73,139,123,32,73,139,227,93,195,204,72,137,92,36,8,76,137,76,36,32,87,72,131,236,64,73,139,249,73,139,216, - 139,10,232,52,236,255,255,144,72,139,3,72,139,8,72,139,129,136,0,0,0,72,131,192,24,72,137,68,36,88,72,139,13,134,81,1,0,72,137,76,36,32,72,133,201,116,111,72,133,192,116,93,65,184,2,0,0,0,69,139,200,65,141,80,126,15,16,0,15,17,1,15,16,72,16, - 15,17,73,16,15,16,64,32,15,17,65,32,15,16,72,48,15,17,73,48,15,16,64,64,15,17,65,64,15,16,72,80,15,17,73,80,15,16,64,96,15,17,65,96,72,3,202,15,16,72,112,15,17,73,240,72,3,194,73,131,233,1,117,182,138,0,136,1,235,39,51,210,65,184,1,1,0,0,232, - 181,130,255,255,232,224,14,0,0,199,0,22,0,0,0,232,37,2,0,0,65,184,2,0,0,0,65,141,80,126,72,139,3,72,139,8,72,139,129,136,0,0,0,72,5,25,1,0,0,72,137,68,36,40,72,139,13,220,80,1,0,72,137,76,36,48,72,133,201,116,94,72,133,192,116,76,15,16,0,15, - 17,1,15,16,72,16,15,17,73,16,15,16,64,32,15,17,65,32,15,16,72,48,15,17,73,48,15,16,64,64,15,17,65,64,15,16,72,80,15,17,73,80,15,16,64,96,15,17,65,96,72,3,202,15,16,72,112,15,17,73,240,72,3,194,73,131,232,1,117,182,235,29,51,210,65,184,0,1,0, - 0,232,20,130,255,255,232,63,14,0,0,199,0,22,0,0,0,232,132,1,0,0,72,139,67,8,72,139,8,72,139,17,131,200,255,240,15,193,2,131,248,1,117,27,72,139,67,8,72,139,8,72,141,5,80,57,1,0,72,57,1,116,8,72,139,9,232,59,0,0,0,72,139,3,72,139,16,72,139,67, - 8,72,139,8,72,139,130,136,0,0,0,72,137,1,72,139,3,72,139,8,72,139,129,136,0,0,0,240,255,0,139,15,232,169,234,255,255,72,139,92,36,80,72,131,196,64,95,195,204,204,72,133,201,116,54,83,72,131,236,32,76,139,193,51,210,72,139,13,154,75,1,0,255,21, - 124,17,1,0,133,192,117,22,255,21,10,17,1,0,139,200,232,35,14,0,0,139,216,232,148,13,0,0,137,24,72,131,196,32,91,195,72,137,92,36,8,72,137,116,36,16,87,72,131,236,32,72,139,242,72,139,249,72,59,202,116,104,72,139,217,72,139,3,72,133,192,116,20, - 73,186,112,162,92,92,196,158,148,223,255,21,135,9,1,0,132,192,116,9,72,131,195,16,72,59,222,117,219,72,59,222,116,59,72,59,223,116,50,72,131,195,248,72,131,123,248,0,116,26,72,139,3,72,133,192,116,18,73,186,112,59,89,62,117,166,153,151,51,201, - 255,21,75,9,1,0,72,131,235,16,72,141,67,8,72,59,199,117,210,50,192,235,2,176,1,72,139,92,36,48,72,139,116,36,56,72,131,196,32,95,195,72,137,92,36,8,87,72,131,236,32,72,139,218,72,139,249,72,59,202,116,36,72,139,67,248,72,133,192,116,18,73,186, - 112,59,89,62,117,166,153,151,51,201,255,21,248,8,1,0,72,131,235,16,72,59,223,117,220,72,139,92,36,48,176,1,72,131,196,32,95,195,204,204,72,131,236,56,72,131,100,36,32,0,69,51,201,69,51,192,51,210,51,201,232,55,3,0,0,72,131,196,56,195,204,204, - 72,131,236,40,185,23,0,0,0,255,21,137,16,1,0,133,192,116,7,185,5,0,0,0,205,41,65,184,1,0,0,0,186,23,4,0,192,65,141,72,1,232,26,0,0,0,255,21,140,15,1,0,72,139,200,186,23,4,0,192,72,131,196,40,72,255,37,17,17,1,0,204,72,137,92,36,16,72,137,116, - 36,24,85,87,65,86,72,141,172,36,16,251,255,255,72,129,236,240,5,0,0,72,139,5,60,55,1,0,72,51,196,72,137,133,224,4,0,0,65,139,248,139,242,139,217,131,249,255,116,5,232,253,92,255,255,51,210,72,141,76,36,112,65,184,152,0,0,0,232,199,127,255,255, - 51,210,72,141,77,16,65,184,208,4,0,0,232,182,127,255,255,72,141,68,36,112,72,137,68,36,72,72,141,77,16,72,141,69,16,72,137,68,36,80,255,21,57,16,1,0,76,139,181,8,1,0,0,72,141,84,36,64,73,139,206,69,51,192,255,21,41,16,1,0,72,133,192,116,54,72, - 131,100,36,56,0,72,141,76,36,88,72,139,84,36,64,76,139,200,72,137,76,36,48,77,139,198,72,141,76,36,96,72,137,76,36,40,72,141,77,16,72,137,76,36,32,51,201,255,21,14,16,1,0,72,139,133,8,5,0,0,72,137,133,8,1,0,0,72,141,133,8,5,0,0,72,131,192,8, - 137,116,36,112,72,137,133,168,0,0,0,72,139,133,8,5,0,0,72,137,69,128,137,124,36,116,255,21,61,15,1,0,51,201,139,248,255,21,243,15,1,0,72,141,76,36,72,255,21,24,16,1,0,133,192,117,16,133,255,117,12,131,251,255,116,7,139,203,232,8,92,255,255,72, - 139,141,224,4,0,0,72,51,204,232,213,218,255,255,76,141,156,36,240,5,0,0,73,139,91,40,73,139,115,48,73,139,227,65,94,95,93,195,204,72,137,13,45,77,1,0,195,72,137,92,36,8,72,137,108,36,16,72,137,116,36,24,87,72,131,236,48,72,139,233,65,139,217, - 72,139,76,36,104,73,139,248,72,139,242,232,162,0,0,0,72,133,192,116,71,72,139,128,184,3,0,0,72,133,192,116,59,73,186,112,42,87,52,72,31,188,214,72,139,76,36,96,72,139,214,72,137,76,36,32,76,139,199,72,139,205,68,139,203,255,21,179,6,1,0,72,139, - 92,36,64,72,139,108,36,72,72,139,116,36,80,72,131,196,48,95,195,72,139,84,36,104,72,141,13,170,76,1,0,232,177,0,0,0,76,139,24,72,139,5,107,53,1,0,76,51,216,139,200,131,225,63,73,211,203,77,133,219,116,15,73,186,112,42,87,52,72,31,188,214,73, - 139,195,235,149,72,139,68,36,96,68,139,203,76,139,199,72,137,68,36,32,72,139,214,72,139,205,232,137,253,255,255,204,72,137,92,36,16,72,137,116,36,24,87,72,131,236,32,72,139,49,51,255,72,139,217,72,133,246,117,59,255,21,94,13,1,0,137,68,36,48, - 64,56,123,16,117,10,72,137,123,8,198,67,16,1,235,4,72,139,123,8,72,139,215,72,141,76,36,48,232,217,233,255,255,139,76,36,48,72,139,240,72,137,3,255,21,113,14,1,0,72,139,92,36,56,72,139,198,72,139,116,36,64,72,131,196,32,95,195,204,204,72,137, - 92,36,8,72,137,116,36,16,87,72,131,236,32,51,219,72,139,250,72,139,241,56,90,16,117,24,255,21,242,12,1,0,139,200,72,137,95,8,198,71,16,1,255,21,42,14,1,0,235,4,72,139,90,8,72,141,4,222,72,139,92,36,48,72,139,116,36,56,72,131,196,32,95,195,72, - 137,92,36,8,85,72,139,236,72,131,236,112,72,131,101,192,0,131,61,231,75,1,0,0,198,69,208,0,198,69,232,0,198,69,240,0,198,69,248,0,117,16,15,16,5,6,59,1,0,198,69,232,1,243,15,127,69,216,72,141,69,192,72,137,68,36,40,72,139,69,48,72,137,68,36, - 32,232,42,254,255,255,128,125,232,2,117,11,72,139,69,192,131,160,168,3,0,0,253,128,125,240,0,116,15,139,93,236,72,141,77,192,232,43,151,255,255,137,88,32,128,125,248,0,116,15,139,93,244,72,141,77,192,232,22,151,255,255,137,88,36,72,139,156,36, - 128,0,0,0,72,131,196,112,93,195,204,72,137,13,13,75,1,0,72,137,13,14,75,1,0,72,137,13,15,75,1,0,72,137,13,16,75,1,0,195,204,204,204,76,139,220,72,131,236,40,184,3,0,0,0,77,141,75,16,77,141,67,8,137,68,36,56,73,141,83,24,137,68,36,64,73,141,75, - 8,232,131,2,0,0,72,131,196,40,195,204,204,72,137,92,36,24,72,137,116,36,32,87,65,84,65,85,65,86,65,87,72,131,236,64,139,217,69,51,255,68,33,124,36,120,65,182,1,68,136,116,36,112,139,209,131,234,2,116,39,131,234,2,116,82,131,234,2,116,29,131, - 234,2,116,72,131,234,3,116,67,131,234,4,116,14,131,234,6,116,9,131,250,1,15,133,130,0,0,0,131,233,2,15,132,180,0,0,0,131,233,4,15,132,144,0,0,0,131,233,9,15,132,153,0,0,0,131,233,6,15,132,135,0,0,0,131,249,1,116,121,51,255,233,148,0,0,0,232, - 228,230,255,255,76,139,248,72,133,192,117,29,131,200,255,76,141,92,36,64,73,139,91,64,73,139,115,72,73,139,227,65,95,65,94,65,93,65,92,95,195,72,139,0,72,139,13,169,121,0,0,72,193,225,4,72,3,200,235,9,57,88,4,116,11,72,131,192,16,72,59,193,117, - 242,51,192,72,133,192,117,18,232,150,7,0,0,199,0,22,0,0,0,232,219,250,255,255,235,169,72,141,120,8,69,50,246,68,136,116,36,112,235,34,72,141,61,212,73,1,0,235,25,72,141,61,195,73,1,0,235,16,72,141,61,202,73,1,0,235,7,72,141,61,169,73,1,0,69, - 51,237,69,132,246,116,10,65,141,77,3,232,0,228,255,255,144,72,139,55,69,132,246,116,18,72,139,5,80,50,1,0,139,200,131,225,63,72,51,240,72,211,206,72,131,254,1,15,132,139,0,0,0,72,133,246,15,132,6,1,0,0,65,188,16,9,0,0,131,251,11,119,53,65,15, - 163,220,115,47,77,139,111,8,76,137,108,36,48,73,131,103,8,0,131,251,8,117,82,232,117,228,255,255,139,64,16,137,68,36,120,137,68,36,32,232,101,228,255,255,199,64,16,140,0,0,0,131,251,8,117,49,72,139,5,198,120,0,0,72,193,224,4,73,3,7,72,139,13, - 192,120,0,0,72,193,225,4,72,3,200,72,137,68,36,40,72,59,193,116,29,72,131,96,8,0,72,131,192,16,235,235,72,139,5,181,49,1,0,72,137,7,235,6,65,188,16,9,0,0,69,132,246,116,10,185,3,0,0,0,232,87,227,255,255,72,131,254,1,117,7,51,192,233,153,254, - 255,255,131,251,8,117,35,232,240,227,255,255,73,186,112,51,211,48,79,31,156,139,139,80,16,139,203,72,139,198,76,139,5,131,2,1,0,65,255,208,235,24,73,186,112,115,215,80,73,134,193,198,139,203,72,139,198,72,139,21,104,2,1,0,255,210,131,251,11, - 119,180,65,15,163,220,115,174,77,137,111,8,131,251,8,117,165,232,161,227,255,255,139,76,36,120,137,72,16,235,151,69,132,246,116,8,141,78,3,232,219,226,255,255,185,3,0,0,0,232,169,128,255,255,144,204,204,204,204,72,137,92,36,8,76,137,76,36,32, - 87,72,131,236,32,73,139,249,139,10,232,151,226,255,255,144,72,139,5,239,48,1,0,139,200,131,225,63,72,139,29,43,72,1,0,72,51,216,72,211,203,139,15,232,146,226,255,255,72,139,195,72,139,92,36,48,72,131,196,32,95,195,72,137,13,25,72,1,0,195,72, - 139,5,185,48,1,0,72,139,21,10,72,1,0,139,200,72,51,208,131,225,63,72,211,202,72,133,210,15,149,192,195,72,139,5,153,48,1,0,76,139,193,72,139,21,231,71,1,0,139,200,131,225,63,72,51,208,72,211,202,72,133,210,117,3,51,192,195,73,186,112,113,84, - 88,230,7,136,216,73,139,200,72,139,194,72,255,37,125,1,1,0,204,177,1,233,97,1,0,0,204,72,137,92,36,8,72,137,124,36,16,85,72,139,236,72,131,236,96,72,131,101,192,0,72,139,217,131,61,195,71,1,0,0,198,69,208,0,198,69,232,0,198,69,240,0,198,69,248, - 0,117,16,15,16,5,226,54,1,0,198,69,232,1,243,15,127,69,216,72,133,219,117,11,51,201,232,17,1,0,0,139,248,235,50,72,141,85,192,232,120,0,0,0,133,192,116,5,131,207,255,235,32,139,67,20,144,193,232,11,168,1,116,19,72,139,203,232,100,48,0,0,139, - 200,232,61,47,0,0,133,192,117,221,51,255,128,125,232,2,117,11,72,139,69,192,131,160,168,3,0,0,253,128,125,240,0,116,15,139,93,236,72,141,77,192,232,220,146,255,255,137,88,32,128,125,248,0,116,15,139,93,244,72,141,77,192,232,199,146,255,255,137, - 88,36,72,139,92,36,112,139,199,72,139,124,36,120,72,131,196,96,93,195,204,204,72,137,92,36,8,72,137,108,36,16,72,137,116,36,24,87,72,131,236,32,72,139,217,72,139,234,139,73,20,139,193,36,3,144,60,2,117,79,246,193,192,116,74,139,59,43,123,8,131, - 99,16,0,72,139,115,8,72,137,51,133,255,126,54,72,139,203,232,193,47,0,0,76,139,205,68,139,199,72,139,214,139,200,232,225,50,0,0,59,248,116,10,240,131,75,20,16,131,200,255,235,18,139,67,20,144,193,232,2,168,1,116,5,240,131,99,20,253,51,192,72, - 139,92,36,48,72,139,108,36,56,72,139,116,36,64,72,131,196,32,95,195,136,76,36,8,85,72,139,236,72,131,236,64,131,101,40,0,72,141,69,40,131,101,32,0,76,141,77,224,72,137,69,232,76,141,69,232,72,141,69,16,72,137,69,240,72,141,85,228,72,141,69,32, - 72,137,69,248,72,141,77,24,184,8,0,0,0,137,69,224,137,69,228,232,176,0,0,0,128,125,16,0,139,69,32,15,69,69,40,72,131,196,64,93,195,204,204,204,72,137,92,36,8,76,137,76,36,32,87,72,131,236,32,73,139,249,73,139,216,72,139,10,232,99,1,0,0,144,72, - 139,83,8,72,139,3,72,139,8,72,133,201,116,92,139,73,20,144,139,193,193,232,13,36,1,116,79,139,193,36,3,60,2,117,5,246,193,192,117,10,15,186,225,11,114,4,255,2,235,56,72,139,67,16,128,56,0,117,16,72,139,3,72,139,8,139,65,20,144,209,232,36,1,116, - 31,72,139,11,72,139,9,232,203,253,255,255,131,248,255,116,8,72,139,67,8,255,0,235,7,72,139,67,24,131,8,255,72,139,15,232,251,0,0,0,72,139,92,36,48,72,131,196,32,95,195,72,137,92,36,8,76,137,76,36,32,86,87,65,86,72,131,236,96,73,139,249,73,139, - 240,139,10,232,129,223,255,255,144,72,139,29,73,69,1,0,72,99,5,58,69,1,0,76,141,52,195,72,137,92,36,56,73,59,222,15,132,137,0,0,0,72,139,3,72,137,68,36,32,72,139,22,72,133,192,116,34,139,72,20,144,139,193,193,232,13,36,1,116,21,139,193,36,3, - 60,2,117,5,246,193,192,117,14,15,186,225,11,114,8,255,2,72,131,195,8,235,186,72,139,86,16,72,139,78,8,72,139,6,76,141,68,36,32,76,137,68,36,64,72,137,68,36,72,72,137,76,36,80,72,137,84,36,88,72,139,68,36,32,72,137,68,36,40,72,137,68,36,48,76, - 141,76,36,40,76,141,68,36,64,72,141,84,36,48,72,141,140,36,136,0,0,0,232,157,254,255,255,235,169,139,15,232,236,222,255,255,72,139,156,36,128,0,0,0,72,131,196,96,65,94,95,94,195,204,204,204,72,131,193,48,72,255,37,153,4,1,0,204,72,131,193,48, - 72,255,37,13,6,1,0,204,204,204,204,204,204,204,204,204,204,204,204,204,72,139,196,72,137,88,8,72,137,104,16,72,137,112,24,72,137,120,32,65,86,72,131,236,32,139,5,65,68,1,0,51,219,191,3,0,0,0,133,192,117,7,184,0,2,0,0,235,5,59,199,15,76,199,72, - 99,200,186,8,0,0,0,137,5,28,68,1,0,232,139,2,0,0,51,201,72,137,5,22,68,1,0,232,193,243,255,255,72,57,29,10,68,1,0,117,47,186,8,0,0,0,137,61,245,67,1,0,72,139,207,232,97,2,0,0,51,201,72,137,5,236,67,1,0,232,151,243,255,255,72,57,29,224,67,1,0, - 117,5,131,200,255,235,117,72,139,235,72,141,53,79,51,1,0,76,141,53,48,51,1,0,73,141,78,48,69,51,192,186,160,15,0,0,232,135,217,255,255,72,139,5,176,67,1,0,76,141,5,17,63,1,0,72,139,213,72,193,250,6,76,137,52,3,72,139,197,131,224,63,72,141,12, - 192,73,139,4,208,72,139,76,200,40,72,131,193,2,72,131,249,2,119,6,199,6,254,255,255,255,72,255,197,73,131,198,88,72,131,195,8,72,131,198,88,72,131,239,1,117,158,51,192,72,139,92,36,48,72,139,108,36,56,72,139,116,36,64,72,139,124,36,72,72,131, - 196,32,65,94,195,204,64,83,72,131,236,32,232,105,251,255,255,232,160,56,0,0,51,219,72,139,13,47,67,1,0,72,139,12,11,232,66,57,0,0,72,139,5,31,67,1,0,72,139,12,3,72,131,193,48,255,21,25,3,1,0,72,131,195,8,72,131,251,24,117,209,72,139,13,0,67, - 1,0,232,171,242,255,255,72,131,37,243,66,1,0,0,72,131,196,32,91,195,204,101,72,139,4,37,48,0,0,0,72,139,72,96,139,129,188,0,0,0,193,232,8,36,1,195,204,204,204,101,72,139,4,37,48,0,0,0,72,139,72,96,72,139,65,32,139,64,8,193,232,31,195,64,83,72, - 131,236,32,51,219,137,92,36,48,232,215,255,255,255,132,192,117,10,72,141,76,36,48,232,37,218,255,255,131,124,36,48,1,15,149,195,139,195,72,131,196,32,91,195,204,72,131,236,40,232,243,222,255,255,72,133,192,117,9,72,141,5,227,50,1,0,235,4,72, - 131,192,32,72,131,196,40,195,72,131,236,40,232,211,222,255,255,72,133,192,117,9,72,141,5,199,50,1,0,235,4,72,131,192,36,72,131,196,40,195,64,83,72,131,236,32,139,217,232,175,222,255,255,72,133,192,117,9,72,141,5,163,50,1,0,235,4,72,131,192,36, - 139,203,137,24,232,32,0,0,0,139,216,232,141,222,255,255,72,141,13,130,50,1,0,72,133,192,116,4,72,141,72,32,137,25,72,131,196,32,91,195,204,51,192,76,141,13,207,140,0,0,73,139,209,68,141,64,8,59,10,116,43,255,192,73,3,208,131,248,45,114,242,141, - 65,237,131,248,17,119,6,184,13,0,0,0,195,129,193,68,255,255,255,184,22,0,0,0,131,249,14,65,15,70,192,195,65,139,68,193,4,195,204,204,204,64,83,72,131,236,32,72,139,218,198,66,56,1,137,74,52,232,163,255,255,255,137,67,44,198,67,48,1,72,131,196, - 32,91,195,204,204,64,83,72,131,236,32,76,139,194,72,139,217,72,133,201,116,14,51,210,72,141,66,224,72,247,243,73,59,192,114,67,73,15,175,216,184,1,0,0,0,72,133,219,72,15,68,216,235,21,232,30,56,0,0,133,192,116,40,72,139,203,232,238,120,255,255, - 133,192,116,28,72,139,13,167,60,1,0,76,139,195,186,8,0,0,0,255,21,121,2,1,0,72,133,192,116,209,235,13,232,165,254,255,255,199,0,12,0,0,0,51,192,72,131,196,32,91,195,204,204,204,233,3,0,0,0,204,204,204,72,137,92,36,8,85,86,87,65,84,65,85,65,86, - 65,87,72,139,236,72,131,236,80,69,51,255,76,139,234,72,139,217,72,133,210,117,23,232,98,254,255,255,65,141,93,22,137,24,232,167,241,255,255,139,195,233,215,1,0,0,15,87,192,76,137,58,72,139,1,243,15,127,69,224,76,137,125,240,72,133,192,15,132, - 157,0,0,0,72,141,85,72,102,199,69,72,42,63,72,139,200,68,136,125,74,232,111,60,0,0,72,139,11,72,133,192,117,60,76,141,77,224,69,51,192,51,210,232,201,4,0,0,139,240,133,192,116,58,72,139,125,224,72,139,223,72,59,125,232,15,132,221,0,0,0,72,139, - 11,232,34,240,255,255,72,131,195,8,72,59,93,232,117,238,233,198,0,0,0,76,141,69,224,72,139,208,232,19,6,0,0,139,240,133,192,117,9,72,131,195,8,72,139,3,235,130,72,139,125,224,72,139,223,72,59,125,232,15,132,154,0,0,0,72,139,11,232,223,239,255, - 255,72,131,195,8,72,59,93,232,117,238,233,131,0,0,0,72,139,125,224,73,131,204,255,72,139,117,232,73,139,215,76,139,246,72,137,85,80,76,43,247,72,139,199,73,193,254,3,73,255,198,72,59,254,116,34,76,139,0,73,139,204,72,255,193,69,56,60,8,117,247, - 72,255,194,72,131,192,8,72,3,209,72,59,198,117,226,72,137,85,80,65,184,1,0,0,0,73,139,206,232,44,124,255,255,72,139,216,72,133,192,117,50,51,201,232,105,239,255,255,72,139,223,72,59,254,116,17,72,139,11,232,89,239,255,255,72,131,195,8,72,59, - 222,117,239,65,139,244,72,139,207,232,69,239,255,255,139,198,233,141,0,0,0,74,141,12,240,76,139,247,72,137,77,88,76,139,225,72,59,254,116,76,72,43,199,72,137,69,72,77,139,6,73,131,207,255,73,255,199,67,128,60,56,0,117,246,72,139,209,73,255,199, - 73,43,212,77,139,207,72,3,85,80,73,139,204,232,35,58,0,0,133,192,117,94,72,139,69,72,72,139,77,88,78,137,36,48,77,3,231,73,131,198,8,76,59,246,117,187,51,201,73,137,93,0,232,212,238,255,255,72,139,223,72,59,254,116,17,72,139,11,232,196,238,255, - 255,72,131,195,8,72,59,222,117,239,72,139,207,232,179,238,255,255,51,192,72,139,156,36,144,0,0,0,72,131,196,80,65,95,65,94,65,93,65,92,95,94,93,195,72,131,100,36,32,0,69,51,201,69,51,192,51,210,51,201,232,188,239,255,255,204,204,204,204,72,139, - 196,72,137,88,8,72,137,104,16,72,137,112,24,72,137,120,32,65,86,72,131,236,48,69,51,246,65,139,233,72,139,218,72,139,249,72,133,201,117,36,68,56,114,40,116,13,72,139,74,16,232,71,238,255,255,68,136,115,40,76,137,115,16,76,137,115,24,76,137,115, - 32,233,14,1,0,0,68,56,49,117,85,76,57,114,24,117,69,68,56,114,40,116,13,72,139,74,16,232,24,238,255,255,68,136,115,40,185,2,0,0,0,232,78,16,0,0,72,137,67,16,73,139,214,72,247,216,27,192,247,208,131,224,12,15,148,194,133,192,15,148,193,136,75, - 40,72,137,83,24,133,192,15,133,192,0,0,0,72,139,67,16,102,68,137,48,235,157,65,131,201,255,68,137,116,36,40,76,139,199,76,137,116,36,32,139,205,65,141,81,10,232,152,10,0,0,72,99,240,133,192,117,22,255,21,223,254,0,0,139,200,232,176,251,255,255, - 232,107,251,255,255,139,0,235,125,72,139,83,24,72,59,242,118,65,68,56,115,40,116,13,72,139,75,16,232,135,237,255,255,68,136,115,40,72,141,12,54,232,190,15,0,0,72,137,67,16,73,139,214,72,247,216,27,192,247,208,131,224,12,72,15,68,214,133,192, - 15,148,193,136,75,40,72,137,83,24,133,192,117,51,72,139,67,16,65,131,201,255,137,84,36,40,76,139,199,139,205,72,137,68,36,32,65,141,81,10,232,18,10,0,0,72,152,72,133,192,15,132,118,255,255,255,72,255,200,72,137,67,32,51,192,72,139,92,36,64,72, - 139,108,36,72,72,139,116,36,80,72,139,124,36,88,72,131,196,48,65,94,195,204,204,204,72,139,196,72,137,88,8,72,137,104,16,72,137,112,24,72,137,120,32,65,86,72,131,236,64,69,51,246,65,139,233,72,139,218,72,139,249,72,133,201,117,36,68,56,114,40, - 116,13,72,139,74,16,232,203,236,255,255,68,136,115,40,76,137,115,16,76,137,115,24,76,137,115,32,233,32,1,0,0,102,68,57,49,117,84,76,57,114,24,117,69,68,56,114,40,116,13,72,139,74,16,232,155,236,255,255,68,136,115,40,185,1,0,0,0,232,209,14,0, - 0,72,137,67,16,73,139,214,72,247,216,27,192,247,208,131,224,12,15,148,194,133,192,15,148,193,136,75,40,72,137,83,24,133,192,15,133,209,0,0,0,72,139,67,16,68,136,48,235,157,76,137,116,36,56,65,131,201,255,76,137,116,36,48,76,139,199,68,137,116, - 36,40,51,210,139,205,76,137,116,36,32,232,164,9,0,0,72,99,240,133,192,117,25,255,21,91,253,0,0,139,200,232,44,250,255,255,232,231,249,255,255,139,0,233,132,0,0,0,72,139,83,24,72,59,242,118,64,68,56,115,40,116,13,72,139,75,16,232,0,236,255,255, - 68,136,115,40,72,139,206,232,56,14,0,0,72,137,67,16,73,139,214,72,247,216,27,192,247,208,131,224,12,72,15,68,214,133,192,15,148,193,136,75,40,72,137,83,24,133,192,117,59,72,139,67,16,65,131,201,255,76,137,116,36,56,76,139,199,76,137,116,36,48, - 139,205,137,84,36,40,51,210,72,137,68,36,32,232,20,9,0,0,72,152,72,133,192,15,132,108,255,255,255,72,255,200,72,137,67,32,51,192,72,139,92,36,80,72,139,108,36,88,72,139,116,36,96,72,139,124,36,104,72,131,196,64,65,94,195,204,72,137,92,36,8,72, - 137,108,36,16,72,137,116,36,24,87,65,84,65,85,65,86,65,87,72,131,236,48,72,131,205,255,73,139,241,51,255,77,139,240,76,139,234,76,139,225,72,255,197,64,56,60,41,117,247,186,1,0,0,0,73,139,198,72,3,234,72,247,208,72,59,232,118,32,141,66,11,72, - 139,92,36,96,72,139,108,36,104,72,139,116,36,112,72,131,196,48,65,95,65,94,65,93,65,92,95,195,77,141,120,1,76,3,253,73,139,207,232,187,249,255,255,72,139,216,77,133,246,116,25,77,139,206,77,139,197,73,139,215,72,139,200,232,14,54,0,0,133,192, - 15,133,213,0,0,0,77,43,254,74,141,12,51,73,139,215,76,139,205,77,139,196,232,241,53,0,0,133,192,15,133,184,0,0,0,76,139,118,16,68,141,120,8,76,57,118,8,15,133,141,0,0,0,72,57,62,117,43,65,139,215,141,72,4,232,91,249,255,255,51,201,72,137,6,232, - 149,234,255,255,72,139,6,72,133,192,116,66,72,137,70,8,72,131,192,32,72,137,70,16,235,93,76,43,54,72,184,255,255,255,255,255,255,255,127,73,193,254,3,76,59,240,119,30,72,139,14,75,141,44,54,72,139,213,77,139,199,232,155,6,0,0,72,133,192,117, - 22,51,201,232,75,234,255,255,72,139,203,191,12,0,0,0,232,62,234,255,255,235,37,74,141,12,240,72,137,6,72,137,78,8,72,141,12,232,72,137,78,16,51,201,232,34,234,255,255,72,139,78,8,72,137,25,76,1,126,8,51,201,232,16,234,255,255,139,199,233,222, - 254,255,255,69,51,201,72,137,124,36,32,69,51,192,51,210,51,201,232,45,235,255,255,204,64,85,83,86,87,65,84,65,85,65,86,72,141,172,36,192,253,255,255,72,129,236,64,3,0,0,72,139,5,179,34,1,0,72,51,196,72,137,133,48,2,0,0,77,139,224,72,139,249, - 72,187,1,8,0,0,0,32,0,0,72,59,209,116,34,138,2,44,47,60,45,119,10,72,15,190,192,72,15,163,195,114,16,72,139,207,232,26,58,0,0,72,139,208,72,59,199,117,222,68,138,2,65,128,248,58,117,30,72,141,71,1,72,59,208,116,21,77,139,204,69,51,192,51,210, - 72,139,207,232,248,253,255,255,233,163,2,0,0,65,128,232,47,69,51,246,65,128,248,45,119,12,73,15,190,192,72,15,163,195,176,1,114,3,65,138,198,72,43,215,76,137,116,36,64,72,255,194,76,137,116,36,72,246,216,76,137,116,36,80,72,141,76,36,112,76, - 137,116,36,88,77,27,237,76,137,116,36,96,76,35,234,68,136,116,36,104,51,210,76,137,108,36,56,232,206,131,255,255,72,139,68,36,120,185,233,253,0,0,57,72,12,117,23,68,56,117,136,116,12,72,139,68,36,112,131,160,168,3,0,0,253,68,139,201,235,56,232, - 163,206,255,255,133,192,117,26,68,56,117,136,116,12,72,139,68,36,112,131,160,168,3,0,0,253,65,185,1,0,0,0,235,21,68,56,117,136,116,12,72,139,68,36,112,131,160,168,3,0,0,253,69,139,206,76,141,68,36,48,72,139,207,72,141,84,36,64,232,34,250,255, - 255,72,139,76,36,80,76,141,69,224,133,192,68,137,116,36,40,76,137,116,36,32,73,15,69,206,69,51,201,51,210,255,21,254,248,0,0,72,139,216,72,131,248,255,117,42,77,139,204,69,51,192,51,210,72,139,207,232,237,252,255,255,139,216,68,56,116,36,104, - 116,10,72,139,76,36,80,232,82,232,255,255,139,195,233,131,1,0,0,73,139,116,36,8,73,43,52,36,72,193,254,3,51,210,76,137,117,176,72,141,77,144,76,137,117,184,76,137,117,192,76,137,117,200,76,137,117,208,68,136,117,216,232,215,130,255,255,72,139, - 69,152,185,233,253,0,0,57,72,12,117,22,68,56,117,168,116,11,72,139,69,144,131,160,168,3,0,0,253,68,139,201,235,54,232,174,205,255,255,133,192,117,25,68,56,117,168,116,11,72,139,69,144,131,160,168,3,0,0,253,65,185,1,0,0,0,235,20,68,56,117,168, - 116,11,72,139,69,144,131,160,168,3,0,0,253,69,139,206,76,141,68,36,48,72,141,85,176,72,141,77,12,232,171,250,255,255,76,139,117,192,51,210,133,192,73,139,206,72,15,69,202,128,57,46,117,31,138,65,1,132,192,117,15,56,85,216,116,58,73,139,206,232, - 135,231,255,255,235,48,60,46,117,5,56,81,2,116,232,77,139,204,77,139,197,72,139,215,232,246,251,255,255,68,139,232,133,192,117,116,56,69,216,116,8,73,139,206,232,90,231,255,255,76,139,108,36,56,72,141,85,224,72,139,203,255,21,208,247,0,0,69, - 51,246,133,192,15,133,255,254,255,255,73,139,4,36,73,139,84,36,8,72,43,208,72,193,250,3,72,59,242,116,23,72,43,214,72,141,12,240,76,141,13,130,0,0,0,69,141,70,8,232,41,46,0,0,72,139,203,255,21,128,247,0,0,68,56,116,36,104,116,10,72,139,76,36, - 80,232,247,230,255,255,51,192,235,43,128,125,216,0,116,8,73,139,206,232,229,230,255,255,72,139,203,255,21,84,247,0,0,128,124,36,104,0,116,10,72,139,76,36,80,232,203,230,255,255,65,139,197,72,139,141,48,2,0,0,72,51,204,232,81,196,255,255,72,129, - 196,64,3,0,0,65,94,65,93,65,92,95,94,91,93,195,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,72,59,202,115,4,131,200,255,195,51,192,72,59,202,15,151,192,195,204,204,72,137,92,36,16,72,137,124,36,24,85,72,141,172,36,96,254,255,255, - 72,129,236,160,2,0,0,72,139,5,67,31,1,0,72,51,196,72,137,133,144,1,0,0,65,139,248,72,139,218,65,184,5,1,0,0,72,141,85,128,255,21,123,247,0,0,133,192,117,20,255,21,105,247,0,0,139,200,232,58,244,255,255,51,192,233,164,0,0,0,72,131,100,36,104, - 0,72,141,76,36,40,72,139,199,72,137,92,36,72,51,210,72,137,68,36,80,72,137,68,36,96,72,137,92,36,88,198,68,36,112,0,232,185,128,255,255,72,139,68,36,48,65,185,233,253,0,0,68,57,72,12,117,21,128,124,36,64,0,116,71,72,139,68,36,40,131,160,168, - 3,0,0,253,235,57,232,142,203,255,255,133,192,117,26,56,68,36,64,116,12,72,139,68,36,40,131,160,168,3,0,0,253,65,185,1,0,0,0,235,22,128,124,36,64,0,116,12,72,139,68,36,40,131,160,168,3,0,0,253,69,51,201,76,141,68,36,32,72,141,84,36,72,72,141, - 77,128,232,43,0,0,0,139,68,36,104,72,139,141,144,1,0,0,72,51,204,232,16,195,255,255,76,141,156,36,160,2,0,0,73,139,91,24,73,139,123,32,73,139,227,93,195,204,204,204,72,137,92,36,8,72,137,108,36,16,72,137,116,36,24,87,72,131,236,64,51,237,65, - 139,241,72,139,218,72,139,249,72,133,201,117,27,64,56,106,40,116,4,64,136,106,40,72,137,106,16,72,137,106,24,72,137,106,32,233,195,0,0,0,102,57,41,117,52,72,57,106,24,117,37,64,56,106,40,116,4,64,136,106,40,232,207,242,255,255,185,34,0,0,0,137, - 8,139,193,64,136,107,40,72,137,107,24,233,149,0,0,0,72,139,66,16,64,136,40,235,190,72,137,108,36,56,65,131,201,255,72,137,108,36,48,76,139,199,137,108,36,40,51,210,139,206,72,137,108,36,32,232,49,2,0,0,72,99,208,133,192,117,22,255,21,232,245, - 0,0,139,200,232,185,242,255,255,232,116,242,255,255,139,0,235,76,72,139,75,24,72,59,209,118,12,64,56,107,40,116,141,64,136,107,40,235,135,72,139,67,16,65,131,201,255,72,137,108,36,56,76,139,199,72,137,108,36,48,51,210,137,76,36,40,139,206,72, - 137,68,36,32,232,216,1,0,0,72,152,72,133,192,116,167,72,255,200,72,137,67,32,51,192,72,139,92,36,80,72,139,108,36,88,72,139,116,36,96,72,131,196,64,95,195,204,204,204,139,209,65,185,4,0,0,0,51,201,69,51,192,233,2,0,0,0,204,204,72,137,92,36,8, - 72,137,116,36,16,87,72,131,236,64,139,218,65,139,249,72,139,209,65,139,240,72,141,76,36,32,232,200,126,255,255,72,139,68,36,48,15,182,211,64,132,124,2,25,117,24,133,246,116,16,72,139,68,36,40,72,139,8,15,183,4,81,133,198,117,4,51,192,235,5,184, - 1,0,0,0,128,124,36,56,0,116,12,72,139,76,36,32,131,161,168,3,0,0,253,72,139,92,36,80,72,139,116,36,88,72,131,196,64,95,195,204,72,137,92,36,8,72,137,108,36,16,72,137,116,36,24,87,72,131,236,32,73,139,232,72,139,218,72,139,241,72,133,210,116, - 29,51,210,72,141,66,224,72,247,243,73,59,192,115,15,232,79,241,255,255,199,0,12,0,0,0,51,192,235,65,72,133,246,116,10,232,143,52,0,0,72,139,248,235,2,51,255,72,15,175,221,72,139,206,72,139,211,232,181,52,0,0,72,139,240,72,133,192,116,22,72,59, - 251,115,17,72,43,223,72,141,12,56,76,139,195,51,210,232,215,100,255,255,72,139,198,72,139,92,36,48,72,139,108,36,56,72,139,116,36,64,72,131,196,32,95,195,204,204,204,184,172,222,0,0,59,200,119,79,116,68,184,51,196,0,0,59,200,119,31,116,57,139, - 193,131,232,42,116,50,45,2,196,0,0,116,43,131,232,1,116,38,131,232,1,116,33,131,248,3,235,26,139,193,45,53,196,0,0,116,19,45,99,18,0,0,116,72,45,18,8,0,0,116,5,131,248,1,117,2,51,210,72,255,37,212,244,0,0,139,193,45,173,222,0,0,116,238,131,232, - 1,116,233,131,232,1,116,228,131,232,1,116,223,131,232,1,116,218,131,232,1,116,213,131,232,1,116,208,45,53,31,0,0,116,201,131,248,1,117,198,131,226,8,235,193,72,137,92,36,8,87,141,129,24,2,255,255,69,139,217,131,248,1,73,139,216,184,172,222,0, - 0,65,15,150,194,51,255,59,200,119,65,116,120,184,51,196,0,0,59,200,119,31,116,109,139,193,131,232,42,116,102,45,2,196,0,0,116,95,131,232,1,116,90,131,232,1,116,85,131,248,3,235,72,139,193,45,53,196,0,0,116,71,45,99,18,0,0,116,64,45,18,8,0,0, - 235,44,139,193,45,173,222,0,0,116,48,131,232,1,116,43,131,232,1,116,38,131,232,1,116,33,131,232,1,116,28,131,232,1,116,23,131,232,1,116,18,45,53,31,0,0,116,11,131,248,1,116,6,15,186,242,7,235,2,139,215,72,139,68,36,72,69,132,210,76,139,76,36, - 64,76,139,192,76,15,69,199,76,15,69,207,116,7,72,133,192,116,2,137,56,76,137,68,36,72,76,139,195,76,137,76,36,64,69,139,203,72,139,92,36,16,95,72,255,37,142,244,0,0,204,204,72,139,196,72,137,88,8,72,137,104,16,72,137,112,24,72,137,120,32,65, - 86,72,131,236,64,255,21,165,242,0,0,51,246,72,139,216,72,133,192,117,7,51,192,233,195,0,0,0,72,139,235,102,57,48,116,29,72,131,200,255,72,255,192,102,57,116,69,0,117,246,72,141,108,69,0,72,131,197,2,102,57,117,0,117,227,72,137,116,36,56,72,43, - 235,72,137,116,36,48,72,131,197,2,72,209,253,76,139,195,68,139,205,137,116,36,40,51,210,72,137,116,36,32,51,201,232,159,254,255,255,76,99,240,133,192,117,11,72,139,203,255,21,219,241,0,0,235,150,73,139,206,232,93,3,0,0,72,139,248,72,133,192, - 117,9,51,201,232,10,225,255,255,235,220,72,137,116,36,56,68,139,205,72,137,116,36,48,76,139,195,68,137,116,36,40,51,210,51,201,72,137,124,36,32,232,81,254,255,255,133,192,117,10,72,139,207,232,217,224,255,255,235,10,51,201,232,208,224,255,255, - 72,139,247,72,139,203,255,21,124,241,0,0,72,139,198,72,139,92,36,80,72,139,108,36,88,72,139,116,36,96,72,139,124,36,104,72,131,196,64,65,94,195,204,204,102,137,76,36,8,72,131,236,88,184,255,255,0,0,102,59,200,15,132,213,0,0,0,72,141,76,36,48, - 232,63,123,255,255,76,139,84,36,56,65,187,0,1,0,0,65,129,122,12,233,253,0,0,117,42,15,183,76,36,96,65,141,67,128,102,59,200,115,88,15,182,193,76,141,5,238,130,0,0,65,246,68,64,2,1,116,5,15,182,201,235,37,15,182,209,235,118,15,183,84,36,96,102, - 65,59,211,115,39,15,182,194,76,141,5,199,130,0,0,65,246,68,64,2,1,116,16,15,182,202,73,139,130,16,1,0,0,15,182,20,8,235,73,15,182,210,235,68,73,131,186,56,1,0,0,0,116,58,73,139,138,56,1,0,0,72,141,68,36,112,199,68,36,40,1,0,0,0,76,141,68,36, - 96,65,185,1,0,0,0,72,137,68,36,32,65,139,211,232,176,49,0,0,15,183,84,36,96,133,192,116,5,15,183,84,36,112,128,124,36,72,0,116,12,72,139,76,36,48,131,161,168,3,0,0,253,15,183,194,72,131,196,88,195,204,204,204,64,83,72,131,236,32,72,139,5,227, - 47,1,0,72,139,218,72,57,2,116,22,139,129,168,3,0,0,133,5,107,32,1,0,117,8,232,84,14,0,0,72,137,3,72,131,196,32,91,195,204,204,204,64,83,72,131,236,32,72,139,5,111,47,1,0,72,139,218,72,57,2,116,22,139,129,168,3,0,0,133,5,55,32,1,0,117,8,232,32, - 212,255,255,72,137,3,72,131,196,32,91,195,204,204,204,64,83,72,131,236,32,72,141,5,123,47,1,0,72,139,218,74,139,4,192,72,57,2,116,22,139,129,168,3,0,0,133,5,255,31,1,0,117,8,232,232,13,0,0,72,137,3,72,131,196,32,91,195,204,204,204,64,83,72,131, - 236,32,72,141,5,3,47,1,0,72,139,218,74,139,4,192,72,57,2,116,22,139,129,168,3,0,0,133,5,199,31,1,0,117,8,232,176,211,255,255,72,137,3,72,131,196,32,91,195,204,204,204,184,1,0,0,0,135,5,53,47,1,0,195,204,204,204,204,76,139,220,72,131,236,40,184, - 4,0,0,0,77,141,75,16,77,141,67,8,137,68,36,56,73,141,83,24,137,68,36,64,73,141,75,8,232,7,0,0,0,72,131,196,40,195,204,204,72,137,92,36,8,72,137,116,36,16,76,137,76,36,32,87,72,131,236,48,73,139,249,139,10,232,250,200,255,255,144,72,141,29,178, - 46,1,0,72,141,53,179,28,1,0,72,137,92,36,32,72,141,5,167,46,1,0,72,59,216,116,25,72,57,51,116,14,72,139,214,72,139,203,232,134,13,0,0,72,137,3,72,131,195,8,235,214,139,15,232,214,200,255,255,72,139,92,36,64,72,139,116,36,72,72,131,196,48,95, - 195,204,204,72,137,92,36,16,87,72,131,236,32,184,255,255,0,0,15,183,218,102,59,200,116,72,184,0,1,0,0,102,59,200,115,18,72,139,5,200,30,1,0,15,183,201,15,183,4,72,35,195,235,46,51,255,102,137,76,36,64,76,141,76,36,48,102,137,124,36,48,72,141, - 84,36,64,141,79,1,68,139,193,232,196,51,0,0,133,192,116,7,15,183,68,36,48,235,208,51,192,72,139,92,36,56,72,131,196,32,95,195,64,83,72,131,236,32,72,139,217,72,131,249,224,119,60,72,133,201,184,1,0,0,0,72,15,68,216,235,21,232,170,36,0,0,133, - 192,116,37,72,139,203,232,122,101,255,255,133,192,116,25,72,139,13,51,41,1,0,76,139,195,51,210,255,21,8,239,0,0,72,133,192,116,212,235,13,232,52,235,255,255,199,0,12,0,0,0,51,192,72,131,196,32,91,195,204,204,72,137,92,36,8,87,72,131,236,32,73, - 139,248,72,139,217,232,255,76,255,255,246,67,4,102,117,13,129,59,99,115,109,224,117,5,131,248,1,116,11,72,139,92,36,48,72,131,196,32,95,195,232,252,135,255,255,72,137,88,32,232,243,135,255,255,72,137,120,40,232,186,129,255,255,204,204,233,199, - 235,255,255,204,204,204,64,83,72,131,236,32,72,139,217,76,141,13,248,129,0,0,51,201,76,141,5,231,129,0,0,72,141,21,232,129,0,0,232,107,1,0,0,72,133,192,116,15,72,139,203,72,131,196,32,91,72,255,37,183,230,0,0,72,131,196,32,91,72,255,37,91,239, - 0,0,204,204,204,64,83,72,131,236,32,139,217,76,141,13,201,129,0,0,185,1,0,0,0,76,141,5,181,129,0,0,72,141,21,182,129,0,0,232,33,1,0,0,139,203,72,133,192,116,12,72,131,196,32,91,72,255,37,110,230,0,0,72,131,196,32,91,72,255,37,26,239,0,0,204, - 204,64,83,72,131,236,32,139,217,76,141,13,145,129,0,0,185,2,0,0,0,76,141,5,125,129,0,0,72,141,21,126,129,0,0,232,217,0,0,0,139,203,72,133,192,116,12,72,131,196,32,91,72,255,37,38,230,0,0,72,131,196,32,91,72,255,37,218,238,0,0,204,204,72,137, - 92,36,8,87,72,131,236,32,72,139,218,76,141,13,92,129,0,0,139,249,72,141,21,83,129,0,0,185,3,0,0,0,76,141,5,63,129,0,0,232,138,0,0,0,72,139,211,139,207,72,133,192,116,8,255,21,218,229,0,0,235,6,255,21,154,238,0,0,72,139,92,36,48,72,131,196,32, - 95,195,204,204,204,72,137,92,36,8,72,137,116,36,16,87,72,131,236,32,65,139,240,76,141,13,27,129,0,0,139,218,76,141,5,10,129,0,0,72,139,249,72,141,21,112,111,0,0,185,4,0,0,0,232,46,0,0,0,139,211,72,139,207,72,133,192,116,11,68,139,198,255,21, - 123,229,0,0,235,6,255,21,59,237,0,0,72,139,92,36,48,72,139,116,36,56,72,131,196,32,95,195,204,204,204,72,137,92,36,8,72,137,108,36,16,72,137,116,36,24,87,65,84,65,85,65,86,65,87,72,131,236,32,139,249,76,141,61,11,244,254,255,73,131,206,255,77, - 139,225,73,139,232,76,139,234,73,139,132,255,208,55,2,0,144,73,59,198,15,132,235,0,0,0,72,133,192,15,133,228,0,0,0,77,59,193,15,132,209,0,0,0,139,117,0,73,139,156,247,184,55,2,0,144,72,133,219,116,11,73,59,222,15,133,153,0,0,0,235,107,77,139, - 188,247,232,139,1,0,51,210,73,139,207,65,184,0,8,0,0,255,21,229,236,0,0,72,139,216,72,133,192,117,86,255,21,15,236,0,0,131,248,87,117,45,68,141,67,7,73,139,207,72,141,21,76,110,0,0,232,143,5,0,0,133,192,116,22,69,51,192,51,210,73,139,207,255, - 21,173,236,0,0,72,139,216,72,133,192,117,30,73,139,198,76,141,61,91,243,254,255,73,135,132,247,184,55,2,0,72,131,197,4,73,59,236,233,103,255,255,255,72,139,195,76,141,61,61,243,254,255,73,135,132,247,184,55,2,0,72,133,192,116,9,72,139,203,255, - 21,47,235,0,0,73,139,213,72,139,203,255,21,187,235,0,0,72,133,192,116,13,72,139,200,73,135,140,255,208,55,2,0,235,10,77,135,180,255,208,55,2,0,51,192,72,139,92,36,80,72,139,108,36,88,72,139,116,36,96,72,131,196,32,65,95,65,94,65,93,65,92,95, - 195,204,204,204,204,204,204,204,204,102,102,15,31,132,0,0,0,0,0,72,131,236,40,72,137,76,36,48,72,137,84,36,56,68,137,68,36,64,72,139,18,72,139,193,232,162,131,255,255,255,208,232,203,131,255,255,72,139,200,72,139,84,36,56,72,139,18,65,184,2, - 0,0,0,232,133,131,255,255,72,131,196,40,195,204,204,204,204,204,204,102,102,15,31,132,0,0,0,0,0,72,131,236,40,72,137,76,36,48,72,137,84,36,56,68,137,68,36,64,72,139,18,72,139,193,232,82,131,255,255,255,208,232,123,131,255,255,72,131,196,40,195, - 204,204,204,204,204,204,72,131,236,40,72,137,76,36,48,72,137,84,36,56,72,139,84,36,56,72,139,18,65,184,2,0,0,0,232,31,131,255,255,72,131,196,40,195,204,204,204,204,204,204,15,31,64,0,72,131,236,40,72,137,76,36,48,72,137,84,36,56,76,137,68,36, - 64,68,137,76,36,72,69,139,193,72,139,193,232,237,130,255,255,72,139,76,36,64,255,208,232,17,131,255,255,72,139,200,72,139,84,36,56,65,184,2,0,0,0,232,206,130,255,255,72,131,196,40,195,204,72,139,196,72,137,88,8,72,137,104,16,72,137,112,24,72, - 137,120,32,65,86,72,131,236,32,77,139,81,56,72,139,242,77,139,240,72,139,233,73,139,209,72,139,206,73,139,249,65,139,26,72,193,227,4,73,3,218,76,141,67,4,232,226,181,255,255,139,69,4,36,102,246,216,184,1,0,0,0,27,210,247,218,3,208,133,83,4,116, - 17,76,139,207,77,139,198,72,139,214,72,139,205,232,110,72,255,255,72,139,92,36,48,72,139,108,36,56,72,139,116,36,64,72,139,124,36,72,72,131,196,32,65,94,195,204,204,204,72,137,84,36,16,72,137,76,36,8,72,131,236,40,69,51,201,69,51,192,72,139, - 84,36,56,72,139,76,36,48,255,21,196,234,0,0,72,131,196,40,195,204,204,204,137,76,36,8,72,131,236,40,185,23,0,0,0,255,21,41,234,0,0,133,192,116,8,139,68,36,48,139,200,205,41,72,141,13,158,41,1,0,232,93,1,0,0,72,139,68,36,40,72,137,5,133,42,1, - 0,72,141,68,36,40,72,131,192,8,72,137,5,21,42,1,0,72,139,5,110,42,1,0,72,137,5,223,40,1,0,199,5,197,40,1,0,9,4,0,192,199,5,191,40,1,0,1,0,0,0,199,5,201,40,1,0,1,0,0,0,184,8,0,0,0,72,107,192,0,72,141,13,193,40,1,0,139,84,36,48,72,137,20,1,72, - 141,13,50,125,0,0,232,213,1,0,0,72,131,196,40,195,72,131,236,40,185,8,0,0,0,232,86,255,255,255,72,131,196,40,195,204,204,204,204,204,72,137,76,36,8,72,131,236,56,185,23,0,0,0,255,21,116,233,0,0,133,192,116,7,185,2,0,0,0,205,41,72,141,13,234, - 40,1,0,232,25,1,0,0,72,139,68,36,56,72,137,5,209,41,1,0,72,141,68,36,56,72,131,192,8,72,137,5,97,41,1,0,72,139,5,186,41,1,0,72,137,5,43,40,1,0,72,139,68,36,64,72,137,5,47,41,1,0,199,5,5,40,1,0,9,4,0,192,199,5,255,39,1,0,1,0,0,0,199,5,9,40,1, - 0,1,0,0,0,184,8,0,0,0,72,107,192,0,72,141,13,1,40,1,0,72,199,4,1,2,0,0,0,184,8,0,0,0,72,107,192,0,72,139,13,241,15,1,0,72,137,76,4,32,184,8,0,0,0,72,107,192,1,72,139,13,212,15,1,0,72,137,76,4,32,72,141,13,72,124,0,0,232,235,0,0,0,72,131,196, - 56,195,204,204,72,137,92,36,32,87,72,131,236,64,72,139,217,255,21,9,233,0,0,72,139,187,248,0,0,0,72,141,84,36,80,72,139,207,69,51,192,255,21,249,232,0,0,72,133,192,116,50,72,131,100,36,56,0,72,141,76,36,88,72,139,84,36,80,76,139,200,72,137,76, - 36,48,76,139,199,72,141,76,36,96,72,137,76,36,40,51,201,72,137,92,36,32,255,21,226,232,0,0,72,139,92,36,104,72,131,196,64,95,195,204,204,204,64,83,86,87,72,131,236,64,72,139,217,255,21,155,232,0,0,72,139,179,248,0,0,0,51,255,69,51,192,72,141, - 84,36,96,72,139,206,255,21,137,232,0,0,72,133,192,116,57,72,131,100,36,56,0,72,141,76,36,104,72,139,84,36,96,76,139,200,72,137,76,36,48,76,139,198,72,141,76,36,112,72,137,76,36,40,51,201,72,137,92,36,32,255,21,114,232,0,0,255,199,131,255,2,124, - 177,72,131,196,64,95,94,91,195,204,204,204,64,83,72,131,236,32,72,139,217,51,201,255,21,119,232,0,0,72,139,203,255,21,158,232,0,0,255,21,216,230,0,0,72,139,200,186,9,4,0,192,72,131,196,32,91,72,255,37,92,232,0,0,204,204,204,204,204,204,204,204, - 204,204,102,102,15,31,132,0,0,0,0,0,72,43,209,77,133,192,116,106,247,193,7,0,0,0,116,29,15,182,1,58,4,10,117,93,72,255,193,73,255,200,116,82,132,192,116,78,72,247,193,7,0,0,0,117,227,73,187,128,128,128,128,128,128,128,128,73,186,255,254,254, - 254,254,254,254,254,141,4,10,37,255,15,0,0,61,248,15,0,0,119,192,72,139,1,72,59,4,10,117,183,72,131,193,8,73,131,232,8,118,15,77,141,12,2,72,247,208,73,35,193,73,133,195,116,207,51,192,195,72,27,192,72,131,200,1,195,204,204,204,77,133,192,117, - 24,51,192,195,15,183,1,102,133,192,116,19,102,59,2,117,14,72,131,193,2,72,131,194,2,73,131,232,1,117,229,15,183,1,15,183,10,43,193,195,72,137,92,36,8,72,137,108,36,16,72,137,116,36,24,87,65,86,65,87,72,131,236,32,72,139,233,72,133,201,116,71, - 51,219,76,141,61,155,237,254,255,191,227,0,0,0,141,4,31,65,184,85,0,0,0,153,72,139,205,43,194,209,248,72,99,240,76,139,246,77,3,246,75,139,148,247,16,167,1,0,232,39,44,0,0,133,192,116,41,121,5,141,126,255,235,3,141,94,1,59,223,126,199,51,192, - 72,139,92,36,64,72,139,108,36,72,72,139,116,36,80,72,131,196,32,65,95,65,94,95,195,75,99,132,247,24,167,1,0,133,192,120,217,72,61,228,0,0,0,115,209,72,3,192,65,139,132,199,176,140,1,0,235,198,204,240,255,65,16,72,139,129,224,0,0,0,72,133,192, - 116,3,240,255,0,72,139,129,240,0,0,0,72,133,192,116,3,240,255,0,72,139,129,232,0,0,0,72,133,192,116,3,240,255,0,72,139,129,0,1,0,0,72,133,192,116,3,240,255,0,72,141,65,56,65,184,6,0,0,0,72,141,21,199,19,1,0,72,57,80,240,116,11,72,139,16,72,133, - 210,116,3,240,255,2,72,131,120,232,0,116,12,72,139,80,248,72,133,210,116,3,240,255,2,72,131,192,32,73,131,232,1,117,203,72,139,137,32,1,0,0,233,33,2,0,0,204,72,131,236,40,72,133,201,15,132,150,0,0,0,65,131,201,255,240,68,1,73,16,72,139,129,224, - 0,0,0,72,133,192,116,4,240,68,1,8,72,139,129,240,0,0,0,72,133,192,116,4,240,68,1,8,72,139,129,232,0,0,0,72,133,192,116,4,240,68,1,8,72,139,129,0,1,0,0,72,133,192,116,4,240,68,1,8,72,141,65,56,65,184,6,0,0,0,72,141,21,37,19,1,0,72,57,80,240,116, - 12,72,139,16,72,133,210,116,4,240,68,1,10,72,131,120,232,0,116,13,72,139,80,248,72,133,210,116,4,240,68,1,10,72,131,192,32,73,131,232,1,117,201,72,139,137,32,1,0,0,232,165,1,0,0,72,131,196,40,195,72,137,92,36,8,72,137,108,36,16,72,137,116,36, - 24,87,72,131,236,32,72,139,129,248,0,0,0,72,139,217,72,133,192,116,121,72,141,13,242,19,1,0,72,59,193,116,109,72,139,131,224,0,0,0,72,133,192,116,97,131,56,0,117,92,72,139,139,240,0,0,0,72,133,201,116,22,131,57,0,117,17,232,222,210,255,255,72, - 139,139,248,0,0,0,232,46,37,0,0,72,139,139,232,0,0,0,72,133,201,116,22,131,57,0,117,17,232,188,210,255,255,72,139,139,248,0,0,0,232,24,38,0,0,72,139,139,224,0,0,0,232,164,210,255,255,72,139,139,248,0,0,0,232,152,210,255,255,72,139,131,0,1,0, - 0,72,133,192,116,71,131,56,0,117,66,72,139,139,8,1,0,0,72,129,233,254,0,0,0,232,116,210,255,255,72,139,139,16,1,0,0,191,128,0,0,0,72,43,207,232,96,210,255,255,72,139,139,24,1,0,0,72,43,207,232,81,210,255,255,72,139,139,0,1,0,0,232,69,210,255, - 255,72,139,139,32,1,0,0,232,205,0,0,0,72,141,179,40,1,0,0,189,6,0,0,0,72,141,123,56,72,141,5,210,17,1,0,72,57,71,240,116,26,72,139,15,72,133,201,116,18,131,57,0,117,13,232,10,210,255,255,72,139,14,232,2,210,255,255,72,131,127,232,0,116,19,72, - 139,79,248,72,133,201,116,10,131,57,0,117,5,232,232,209,255,255,72,131,198,8,72,131,199,32,72,131,237,1,117,177,72,139,203,72,139,92,36,48,72,139,108,36,56,72,139,116,36,64,72,131,196,32,95,233,190,209,255,255,204,204,72,133,201,116,28,72,141, - 5,88,102,0,0,72,59,200,116,16,184,1,0,0,0,240,15,193,129,92,1,0,0,255,192,195,184,255,255,255,127,195,204,72,133,201,116,26,72,141,5,48,102,0,0,72,59,200,116,14,131,200,255,240,15,193,129,92,1,0,0,255,200,195,184,255,255,255,127,195,204,204, - 204,72,133,201,116,49,83,72,131,236,32,72,141,5,3,102,0,0,72,139,217,72,59,200,116,24,139,129,92,1,0,0,144,133,192,117,13,232,23,37,0,0,72,139,203,232,59,209,255,255,72,131,196,32,91,195,204,72,137,92,36,8,87,72,131,236,32,232,113,188,255,255, - 72,141,184,144,0,0,0,139,136,168,3,0,0,139,5,238,17,1,0,133,200,116,8,72,139,31,72,133,219,117,44,185,4,0,0,0,232,124,187,255,255,144,72,139,21,52,33,1,0,72,139,207,232,40,0,0,0,72,139,216,185,4,0,0,0,232,123,187,255,255,72,133,219,116,14,72, - 139,195,72,139,92,36,48,72,131,196,32,95,195,232,219,122,255,255,144,204,204,72,137,92,36,8,87,72,131,236,32,72,139,250,72,133,210,116,70,72,133,201,116,65,72,139,25,72,59,218,117,5,72,139,199,235,54,72,137,57,72,139,207,232,45,252,255,255,72, - 133,219,116,235,72,139,203,232,172,252,255,255,131,123,16,0,117,221,72,141,5,195,14,1,0,72,59,216,116,209,72,139,203,232,58,253,255,255,235,199,51,192,72,139,92,36,48,72,131,196,32,95,195,204,204,204,72,131,236,40,131,249,254,117,21,232,54,222, - 255,255,131,32,0,232,14,222,255,255,199,0,9,0,0,0,235,78,133,201,120,50,59,13,236,31,1,0,115,42,72,99,201,76,141,5,224,27,1,0,72,139,193,131,225,63,72,193,232,6,72,141,20,201,73,139,4,192,246,68,208,56,1,116,7,72,139,68,208,40,235,28,232,235, - 221,255,255,131,32,0,232,195,221,255,255,199,0,9,0,0,0,232,8,209,255,255,72,131,200,255,72,131,196,40,195,204,204,204,72,137,92,36,8,72,137,116,36,16,72,137,124,36,24,65,86,72,131,236,32,72,99,217,133,201,120,114,59,29,122,31,1,0,115,106,72, - 139,195,76,141,53,110,27,1,0,131,224,63,72,139,243,72,193,238,6,72,141,60,192,73,139,4,246,246,68,248,56,1,116,71,72,131,124,248,40,255,116,63,232,76,39,0,0,131,248,1,117,39,133,219,116,22,43,216,116,11,59,216,117,27,185,244,255,255,255,235, - 12,185,245,255,255,255,235,5,185,246,255,255,255,51,210,255,21,228,225,0,0,73,139,4,246,72,131,76,248,40,255,51,192,235,22,232,25,221,255,255,199,0,9,0,0,0,232,46,221,255,255,131,32,0,131,200,255,72,139,92,36,48,72,139,116,36,56,72,139,124,36, - 64,72,131,196,32,65,94,195,204,204,72,137,92,36,8,72,137,108,36,16,72,137,116,36,24,87,72,131,236,32,186,72,0,0,0,141,74,248,232,195,221,255,255,51,246,72,139,216,72,133,192,116,91,72,141,168,0,18,0,0,72,59,197,116,76,72,141,120,48,72,141,79, - 208,69,51,192,186,160,15,0,0,232,252,180,255,255,72,131,79,248,255,72,141,79,14,128,103,13,248,139,198,72,137,55,199,71,8,0,0,10,10,198,71,12,10,64,136,49,255,192,72,255,193,131,248,5,114,243,72,131,199,72,72,141,71,208,72,59,197,117,184,72, - 139,243,51,201,232,155,206,255,255,72,139,92,36,48,72,139,198,72,139,116,36,64,72,139,108,36,56,72,131,196,32,95,195,204,204,204,72,133,201,116,74,72,137,92,36,8,72,137,116,36,16,87,72,131,236,32,72,141,177,0,18,0,0,72,139,217,72,139,249,72, - 59,206,116,18,72,139,207,255,21,169,222,0,0,72,131,199,72,72,59,254,117,238,72,139,203,232,64,206,255,255,72,139,92,36,48,72,139,116,36,56,72,131,196,32,95,195,72,137,92,36,8,72,137,116,36,16,72,137,124,36,24,65,87,72,131,236,48,139,241,129, - 249,0,32,0,0,114,41,232,212,219,255,255,187,9,0,0,0,137,24,232,24,207,255,255,139,195,72,139,92,36,64,72,139,116,36,72,72,139,124,36,80,72,131,196,48,65,95,195,51,255,141,79,7,232,94,184,255,255,144,139,223,139,5,141,29,1,0,72,137,92,36,32,59, - 240,124,54,76,141,61,125,25,1,0,73,57,60,223,116,2,235,34,232,144,254,255,255,73,137,4,223,72,133,192,117,5,141,120,12,235,20,139,5,92,29,1,0,131,192,64,137,5,83,29,1,0,72,255,195,235,193,185,7,0,0,0,232,40,184,255,255,139,199,235,138,72,99, - 209,76,141,5,54,25,1,0,72,139,194,131,226,63,72,193,248,6,72,141,12,210,73,139,4,192,72,141,12,200,72,255,37,201,221,0,0,204,72,99,209,76,141,5,14,25,1,0,72,139,194,131,226,63,72,193,248,6,72,141,12,210,73,139,4,192,72,141,12,200,72,255,37,33, - 223,0,0,204,64,85,65,84,65,85,65,86,65,87,72,131,236,96,72,141,108,36,48,72,137,93,96,72,137,117,104,72,137,125,112,72,139,5,242,5,1,0,72,51,197,72,137,69,40,68,139,234,69,139,249,72,139,209,77,139,224,72,141,77,8,232,178,103,255,255,139,189, - 136,0,0,0,133,255,117,7,72,139,69,16,139,120,12,247,157,144,0,0,0,69,139,207,77,139,196,139,207,27,210,131,100,36,40,0,72,131,100,36,32,0,131,226,8,255,194,232,156,233,255,255,76,99,240,133,192,117,7,51,255,233,208,0,0,0,73,139,246,72,3,246, - 72,141,70,16,72,59,240,72,27,201,72,35,200,15,132,157,0,0,0,72,129,249,0,4,0,0,119,49,72,141,65,15,72,59,193,119,10,72,184,240,255,255,255,255,255,255,15,72,131,224,240,232,76,36,0,0,72,43,224,72,141,92,36,48,72,133,219,116,109,199,3,204,204, - 0,0,235,19,232,158,238,255,255,72,139,216,72,133,192,116,10,199,0,221,221,0,0,72,131,195,16,72,133,219,116,73,76,139,198,51,210,72,139,203,232,206,77,255,255,69,139,207,68,137,116,36,40,77,139,196,72,137,92,36,32,186,1,0,0,0,139,207,232,246, - 232,255,255,133,192,116,28,76,139,141,128,0,0,0,68,139,192,72,139,211,65,139,205,255,21,120,221,0,0,139,248,235,9,51,219,51,255,72,133,219,116,17,72,141,75,240,129,57,221,221,0,0,117,5,232,226,203,255,255,128,125,32,0,116,11,72,139,69,8,131, - 160,168,3,0,0,253,139,199,72,139,77,40,72,51,205,232,91,169,255,255,72,139,93,96,72,139,117,104,72,139,125,112,72,141,101,48,65,95,65,94,65,93,65,92,93,195,204,72,137,92,36,8,72,137,116,36,16,87,72,131,236,112,72,139,242,73,139,217,72,139,209, - 65,139,248,72,141,76,36,80,232,63,102,255,255,139,132,36,192,0,0,0,72,141,76,36,88,137,68,36,64,76,139,203,139,132,36,184,0,0,0,68,139,199,137,68,36,56,72,139,214,139,132,36,176,0,0,0,137,68,36,48,72,139,132,36,168,0,0,0,72,137,68,36,40,139, - 132,36,160,0,0,0,137,68,36,32,232,39,0,0,0,128,124,36,104,0,116,12,72,139,76,36,80,131,161,168,3,0,0,253,76,141,92,36,112,73,139,91,16,73,139,115,24,73,139,227,95,195,204,204,64,85,65,84,65,85,65,86,65,87,72,131,236,96,72,141,108,36,80,72,137, - 93,64,72,137,117,72,72,137,125,80,72,139,5,202,3,1,0,72,51,197,72,137,69,8,72,99,125,96,73,139,241,69,139,224,76,139,234,72,139,217,133,255,126,20,72,139,215,73,139,201,232,236,34,0,0,59,199,141,120,1,124,2,139,248,68,139,117,120,69,133,246, - 117,7,72,139,3,68,139,112,12,247,157,128,0,0,0,68,139,207,76,139,198,65,139,206,27,210,131,100,36,40,0,72,131,100,36,32,0,131,226,8,255,194,232,97,231,255,255,51,210,76,99,248,133,192,15,132,115,2,0,0,73,139,199,72,3,192,72,141,72,16,72,59,193, - 72,27,192,72,35,193,15,132,61,2,0,0,73,184,240,255,255,255,255,255,255,15,72,61,0,4,0,0,119,49,72,141,72,15,72,59,200,119,3,73,139,200,72,131,225,240,72,139,193,232,13,34,0,0,72,43,225,72,141,92,36,80,72,133,219,15,132,5,2,0,0,199,3,204,204, - 0,0,235,24,72,139,200,232,88,236,255,255,51,210,72,139,216,72,133,192,116,10,199,0,221,221,0,0,72,131,195,16,72,133,219,15,132,216,1,0,0,68,137,124,36,40,68,139,207,76,139,198,72,137,92,36,32,186,1,0,0,0,65,139,206,232,182,230,255,255,51,210, - 133,192,15,132,177,1,0,0,72,137,84,36,64,69,139,207,72,137,84,36,56,76,139,195,72,137,84,36,48,73,139,205,137,84,36,40,72,137,84,36,32,65,139,212,232,55,176,255,255,51,210,72,99,240,133,192,15,132,123,1,0,0,65,184,0,4,0,0,69,133,224,116,81,139, - 69,112,133,192,15,132,108,1,0,0,59,240,15,143,93,1,0,0,72,137,84,36,64,69,139,207,72,137,84,36,56,76,139,195,72,137,84,36,48,73,139,205,137,68,36,40,65,139,212,72,139,69,104,72,137,68,36,32,232,223,175,255,255,51,210,139,240,133,192,15,133,43, - 1,0,0,233,31,1,0,0,72,139,206,72,3,201,72,141,65,16,72,59,200,72,27,201,72,35,200,15,132,230,0,0,0,73,59,200,119,53,72,141,65,15,72,59,193,119,10,72,184,240,255,255,255,255,255,255,15,72,131,224,240,232,220,32,0,0,72,43,224,72,141,124,36,80, - 72,133,255,15,132,205,0,0,0,199,7,204,204,0,0,235,21,232,42,235,255,255,51,210,72,139,248,72,133,192,116,10,199,0,221,221,0,0,72,131,199,16,72,133,255,15,132,163,0,0,0,72,137,84,36,64,69,139,207,72,137,84,36,56,76,139,195,72,137,84,36,48,73, - 139,205,137,116,36,40,65,139,212,72,137,124,36,32,232,48,175,255,255,51,210,133,192,116,94,139,69,112,68,139,206,72,137,84,36,56,76,139,199,72,137,84,36,48,65,139,206,133,192,117,22,137,84,36,40,72,137,84,36,32,232,222,229,255,255,139,240,133, - 192,117,26,235,46,137,68,36,40,72,139,69,104,72,137,68,36,32,232,196,229,255,255,139,240,133,192,116,27,72,141,79,240,129,57,221,221,0,0,117,46,232,65,200,255,255,235,39,72,139,250,72,133,255,116,17,72,141,79,240,129,57,221,221,0,0,117,5,232, - 38,200,255,255,51,246,235,10,72,139,218,139,242,72,133,219,116,17,72,141,75,240,129,57,221,221,0,0,117,5,232,7,200,255,255,139,198,72,139,77,8,72,51,205,232,145,165,255,255,72,139,93,64,72,139,117,72,72,139,125,80,72,141,101,16,65,95,65,94,65, - 93,65,92,93,195,204,204,204,204,204,204,204,72,131,236,40,232,183,188,255,255,51,201,132,192,15,148,193,139,193,72,131,196,40,195,204,137,76,36,8,72,131,236,56,72,99,209,131,250,254,117,13,232,115,213,255,255,199,0,9,0,0,0,235,108,133,201,120, - 88,59,21,81,23,1,0,115,80,72,139,202,76,141,5,69,19,1,0,131,225,63,72,139,194,72,193,248,6,72,141,12,201,73,139,4,192,246,68,200,56,1,116,45,72,141,68,36,64,137,84,36,80,137,84,36,88,76,141,76,36,80,72,141,84,36,88,72,137,68,36,32,76,141,68, - 36,32,72,141,76,36,72,232,29,0,0,0,235,19,232,10,213,255,255,199,0,9,0,0,0,232,79,200,255,255,131,200,255,72,131,196,56,195,204,204,204,72,137,92,36,8,76,137,76,36,32,87,72,131,236,32,73,139,249,73,139,216,139,10,232,136,249,255,255,144,72,139, - 3,72,99,8,72,139,209,72,139,193,72,193,248,6,76,141,5,176,18,1,0,131,226,63,72,141,20,210,73,139,4,192,246,68,208,56,1,116,35,232,133,246,255,255,72,139,200,255,21,136,215,0,0,51,219,133,192,117,29,255,21,252,215,0,0,139,216,232,173,212,255, - 255,137,24,232,134,212,255,255,199,0,9,0,0,0,131,203,255,139,15,232,78,249,255,255,139,195,72,139,92,36,48,72,131,196,32,95,195,204,72,131,236,40,72,133,201,117,21,232,90,212,255,255,199,0,22,0,0,0,232,159,199,255,255,131,200,255,235,4,139,65, - 24,144,72,131,196,40,195,204,64,85,83,86,87,65,84,65,85,65,86,65,87,72,139,236,72,131,236,120,51,255,69,139,240,76,99,249,73,139,217,72,139,242,69,133,192,15,132,200,2,0,0,72,133,210,117,55,65,198,65,56,1,69,51,192,65,137,121,52,51,210,65,198, - 65,48,1,51,201,65,199,65,44,22,0,0,0,69,51,201,72,137,92,36,40,72,137,124,36,32,232,253,200,255,255,131,200,255,233,142,2,0,0,73,139,199,72,141,13,191,17,1,0,131,224,63,77,139,231,73,193,252,6,76,137,101,232,76,141,44,192,74,139,12,225,66,138, - 68,233,57,136,69,184,254,200,60,1,119,9,65,139,198,247,208,168,1,116,146,66,246,68,233,56,32,116,14,51,210,65,139,207,68,141,66,2,232,4,30,0,0,65,139,207,72,137,125,208,232,104,12,0,0,72,141,21,105,17,1,0,133,192,15,132,20,1,0,0,74,139,4,226, - 66,56,124,232,56,15,141,5,1,0,0,64,56,123,40,117,15,72,139,203,232,4,98,255,255,72,141,21,61,17,1,0,72,139,67,24,72,57,184,56,1,0,0,117,15,74,139,4,226,66,56,124,232,57,15,132,212,0,0,0,74,139,12,226,72,141,85,224,74,139,76,233,40,255,21,62, - 214,0,0,133,192,15,132,178,0,0,0,15,190,77,184,133,201,15,132,131,0,0,0,131,233,1,116,9,131,249,1,15,133,57,1,0,0,78,141,36,54,72,137,125,192,76,139,254,73,59,244,115,92,68,139,117,196,65,15,183,7,15,183,200,102,137,69,184,232,236,31,0,0,15, - 183,77,184,102,59,193,117,54,65,131,198,2,68,137,117,196,102,131,249,10,117,29,185,13,0,0,0,232,203,31,0,0,185,13,0,0,0,102,59,193,117,20,65,255,198,68,137,117,196,255,199,73,131,199,2,77,59,252,115,11,235,177,255,21,251,213,0,0,137,69,192,76, - 139,101,232,233,186,0,0,0,69,139,206,72,137,92,36,32,76,139,198,72,141,77,192,65,139,215,232,88,2,0,0,242,15,16,0,139,120,8,233,156,0,0,0,72,141,21,77,16,1,0,74,139,12,226,66,56,124,233,56,125,82,15,190,77,184,133,201,116,54,131,233,1,116,29, - 131,249,1,15,133,128,0,0,0,69,139,206,72,141,77,192,76,139,198,65,139,215,232,142,7,0,0,235,184,69,139,206,72,141,77,192,76,139,198,65,139,215,232,150,8,0,0,235,164,69,139,206,72,141,77,192,76,139,198,65,139,215,232,98,6,0,0,235,144,74,139,76, - 233,40,76,141,77,196,51,192,69,139,198,72,33,68,36,32,72,139,214,72,137,69,192,137,69,200,255,21,253,214,0,0,133,192,117,9,255,21,59,213,0,0,137,69,192,139,125,200,242,15,16,69,192,242,15,17,69,208,72,141,21,172,15,1,0,72,139,69,208,72,193,232, - 32,133,192,117,92,139,69,208,133,192,116,44,131,248,5,117,23,198,67,48,1,199,67,44,9,0,0,0,198,67,56,1,137,67,52,233,172,253,255,255,139,77,208,72,139,211,232,82,210,255,255,233,156,253,255,255,74,139,4,226,66,246,68,232,56,64,116,5,128,62,26, - 116,31,131,99,52,0,198,67,48,1,199,67,44,28,0,0,0,198,67,56,1,233,115,253,255,255,139,69,212,43,199,235,2,51,192,72,131,196,120,65,95,65,94,65,93,65,92,95,94,91,93,195,204,204,72,137,92,36,24,72,137,84,36,16,137,76,36,8,86,65,84,65,85,65,86, - 65,87,72,131,236,48,73,139,217,69,139,232,72,99,241,131,254,254,117,45,65,198,65,56,1,65,131,97,52,0,65,198,65,48,1,65,199,65,44,9,0,0,0,131,200,255,72,139,92,36,112,72,131,196,48,65,95,65,94,65,93,65,92,94,195,133,201,120,15,59,53,200,18,1, - 0,115,7,184,1,0,0,0,235,2,51,192,133,192,117,51,65,198,65,56,1,65,131,97,52,0,65,198,65,48,1,65,199,65,44,9,0,0,0,72,137,92,36,40,72,131,100,36,32,0,69,51,201,69,51,192,51,210,51,201,232,180,197,255,255,235,158,72,139,198,76,139,254,73,193,255, - 6,72,141,13,117,14,1,0,131,224,63,76,141,36,192,74,139,4,249,66,246,68,224,56,1,116,169,139,206,232,27,245,255,255,65,131,206,255,72,141,5,80,14,1,0,74,139,4,248,66,246,68,224,56,1,117,21,198,67,48,1,199,67,44,9,0,0,0,198,67,56,1,131,99,52,0, - 235,21,76,139,203,69,139,197,72,139,84,36,104,139,206,232,237,251,255,255,68,139,240,139,206,232,251,244,255,255,65,139,198,233,38,255,255,255,204,204,204,72,139,196,85,86,87,65,84,65,85,65,86,65,87,72,141,104,169,72,129,236,208,0,0,0,72,199, - 69,247,254,255,255,255,72,137,88,8,72,139,5,4,251,0,0,72,51,196,72,137,69,23,73,139,240,76,137,69,191,76,99,242,72,139,217,72,139,69,127,72,137,69,167,73,139,198,77,139,238,73,193,253,6,76,137,109,199,72,141,13,171,218,254,255,131,224,63,76, - 141,60,192,74,139,132,233,0,51,2,0,74,139,68,248,40,72,137,69,231,69,139,225,77,3,224,76,137,101,159,255,21,187,210,0,0,137,69,183,51,255,76,139,85,167,65,56,122,40,117,12,73,139,202,232,44,94,255,255,76,139,85,167,73,139,74,24,139,73,12,137, - 77,187,51,192,72,137,3,137,67,8,76,57,101,191,15,131,143,3,0,0,77,139,206,73,193,249,6,76,137,77,239,139,215,138,6,136,69,143,137,125,147,65,188,1,0,0,0,76,141,29,42,218,254,255,129,249,233,253,0,0,15,133,123,1,0,0,139,215,76,139,247,74,141, - 12,253,62,0,0,0,75,3,140,203,0,51,2,0,64,56,57,116,14,255,194,73,255,198,72,255,193,73,131,254,5,124,237,77,133,246,15,142,224,0,0,0,75,139,132,235,0,51,2,0,66,15,182,76,248,62,70,15,190,164,25,208,40,2,0,65,255,196,65,139,196,43,194,137,69, - 175,72,139,85,159,72,43,214,76,99,192,76,59,194,15,143,120,2,0,0,72,139,207,74,141,20,253,62,0,0,0,75,3,148,203,0,51,2,0,138,2,136,68,13,255,72,255,193,72,255,194,73,59,206,124,239,77,133,192,126,26,72,141,77,255,73,3,206,72,139,214,232,176, - 158,255,255,76,139,85,167,76,141,29,117,217,254,255,72,139,215,75,139,140,235,0,51,2,0,72,3,202,66,136,124,249,62,72,255,194,73,59,214,124,232,72,137,125,207,72,141,69,255,72,137,69,215,139,199,65,131,252,4,15,148,192,255,192,68,139,224,68,139, - 192,76,137,84,36,32,76,141,77,207,72,141,85,215,72,141,77,147,232,167,25,0,0,72,131,248,255,15,132,96,2,0,0,139,69,175,255,200,72,99,200,72,3,241,233,251,0,0,0,15,182,6,78,15,190,172,24,208,40,2,0,65,141,77,1,76,139,69,159,76,43,198,72,99,193, - 73,59,192,15,143,216,1,0,0,72,137,125,175,72,137,117,223,139,199,131,249,4,15,148,192,255,192,68,139,240,68,139,192,76,137,84,36,32,76,141,77,175,72,141,85,223,72,141,77,147,232,60,25,0,0,72,131,248,255,15,132,245,1,0,0,73,3,245,69,139,230,76, - 139,109,199,233,145,0,0,0,79,139,132,235,0,51,2,0,67,138,76,248,61,246,193,4,116,33,67,138,68,248,62,136,69,7,138,6,136,69,8,128,225,251,67,136,76,248,61,65,184,2,0,0,0,72,141,85,7,235,73,68,15,182,14,73,139,66,24,72,139,8,102,66,57,60,73,125, - 49,76,141,118,1,76,59,117,159,15,131,112,1,0,0,77,139,202,65,184,2,0,0,0,72,139,214,72,141,77,147,232,123,21,0,0,131,248,255,15,132,117,1,0,0,73,139,246,235,27,77,139,196,72,139,214,77,139,202,72,141,77,147,232,91,21,0,0,131,248,255,15,132,85, - 1,0,0,72,255,198,72,137,124,36,56,72,137,124,36,48,199,68,36,40,5,0,0,0,72,141,69,15,72,137,68,36,32,69,139,204,76,141,69,147,51,210,139,77,183,232,151,220,255,255,68,139,240,133,192,15,132,27,1,0,0,72,137,124,36,32,76,141,77,151,68,139,192, - 72,141,85,15,76,139,101,231,73,139,204,255,21,235,209,0,0,133,192,15,132,238,0,0,0,139,214,43,85,191,3,83,8,137,83,4,68,57,117,151,15,130,225,0,0,0,128,125,143,10,117,62,184,13,0,0,0,102,137,69,143,72,137,124,36,32,76,141,77,151,68,141,64,244, - 72,141,85,143,73,139,204,255,21,165,209,0,0,133,192,15,132,168,0,0,0,131,125,151,1,15,130,166,0,0,0,255,67,8,255,67,4,139,83,4,72,59,117,159,15,131,147,0,0,0,76,139,85,167,76,139,77,239,139,77,187,233,1,253,255,255,72,133,210,126,36,73,43,246, - 75,139,140,235,0,51,2,0,73,3,206,66,138,4,54,66,136,68,249,62,255,199,73,255,198,72,99,199,72,59,194,124,223,1,83,4,235,85,77,133,192,126,39,72,139,215,76,139,77,199,75,139,140,203,0,51,2,0,72,3,202,138,4,50,66,136,68,249,62,255,199,72,255,194, - 72,99,199,73,59,192,124,224,68,1,67,4,235,35,71,136,76,248,62,75,139,132,235,0,51,2,0,66,128,76,248,61,4,141,66,1,137,67,4,235,8,255,21,55,207,0,0,137,3,72,139,195,72,139,77,23,72,51,204,232,142,155,255,255,72,139,156,36,16,1,0,0,72,129,196, - 208,0,0,0,65,95,65,94,65,93,65,92,95,94,93,195,204,204,204,72,137,92,36,8,72,137,108,36,24,86,87,65,86,184,80,20,0,0,232,152,21,0,0,72,43,224,72,139,5,150,246,0,0,72,51,196,72,137,132,36,64,20,0,0,76,99,210,72,139,249,73,139,194,65,139,233,72, - 193,248,6,72,141,13,76,9,1,0,65,131,226,63,73,3,232,73,139,240,72,139,4,193,75,141,20,210,76,139,116,208,40,51,192,72,137,7,137,71,8,76,59,197,115,111,72,141,92,36,64,72,59,245,115,36,138,6,72,255,198,60,10,117,9,255,71,8,198,3,13,72,255,195, - 136,3,72,255,195,72,141,132,36,63,20,0,0,72,59,216,114,215,72,131,100,36,32,0,72,141,68,36,64,43,216,76,141,76,36,48,68,139,195,72,141,84,36,64,73,139,206,255,21,7,208,0,0,133,192,116,18,139,68,36,48,1,71,4,59,195,114,15,72,59,245,114,155,235, - 8,255,21,51,206,0,0,137,7,72,139,199,72,139,140,36,64,20,0,0,72,51,204,232,134,154,255,255,76,141,156,36,80,20,0,0,73,139,91,32,73,139,107,48,73,139,227,65,94,95,94,195,204,204,72,137,92,36,8,72,137,108,36,24,86,87,65,86,184,80,20,0,0,232,148, - 20,0,0,72,43,224,72,139,5,146,245,0,0,72,51,196,72,137,132,36,64,20,0,0,76,99,210,72,139,249,73,139,194,65,139,233,72,193,248,6,72,141,13,72,8,1,0,65,131,226,63,73,3,232,73,139,240,72,139,4,193,75,141,20,210,76,139,116,208,40,51,192,72,137,7, - 137,71,8,76,59,197,15,131,130,0,0,0,72,141,92,36,64,72,59,245,115,49,15,183,6,72,131,198,2,102,131,248,10,117,16,131,71,8,2,185,13,0,0,0,102,137,11,72,131,195,2,102,137,3,72,131,195,2,72,141,132,36,62,20,0,0,72,59,216,114,202,72,131,100,36,32, - 0,72,141,68,36,64,72,43,216,76,141,76,36,48,72,209,251,72,141,84,36,64,3,219,73,139,206,68,139,195,255,21,236,206,0,0,133,192,116,18,139,68,36,48,1,71,4,59,195,114,15,72,59,245,114,136,235,8,255,21,24,205,0,0,137,7,72,139,199,72,139,140,36,64, - 20,0,0,72,51,204,232,107,153,255,255,76,141,156,36,80,20,0,0,73,139,91,32,73,139,107,48,73,139,227,65,94,95,94,195,204,204,204,72,137,92,36,8,72,137,108,36,24,86,87,65,84,65,86,65,87,184,112,20,0,0,232,116,19,0,0,72,43,224,72,139,5,114,244,0, - 0,72,51,196,72,137,132,36,96,20,0,0,76,99,210,72,139,217,73,139,194,69,139,241,72,193,248,6,72,141,13,40,7,1,0,65,131,226,63,77,3,240,77,139,248,73,139,248,72,139,4,193,75,141,20,210,76,139,100,208,40,51,192,72,137,3,77,59,198,137,67,8,15,131, - 206,0,0,0,72,141,68,36,80,73,59,254,115,45,15,183,15,72,131,199,2,102,131,249,10,117,12,186,13,0,0,0,102,137,16,72,131,192,2,102,137,8,72,131,192,2,72,141,140,36,248,6,0,0,72,59,193,114,206,72,131,100,36,56,0,72,141,76,36,80,72,131,100,36,48, - 0,76,141,68,36,80,72,43,193,199,68,36,40,85,13,0,0,72,141,140,36,0,7,0,0,72,209,248,72,137,76,36,32,68,139,200,185,233,253,0,0,51,210,232,58,216,255,255,139,232,133,192,116,73,51,246,133,192,116,51,72,131,100,36,32,0,72,141,148,36,0,7,0,0,139, - 206,76,141,76,36,64,68,139,197,72,3,209,73,139,204,68,43,198,255,21,131,205,0,0,133,192,116,24,3,116,36,64,59,245,114,205,139,199,65,43,199,137,67,4,73,59,254,233,52,255,255,255,255,21,169,203,0,0,137,3,72,139,195,72,139,140,36,96,20,0,0,72, - 51,204,232,252,151,255,255,76,141,156,36,112,20,0,0,73,139,91,48,73,139,107,64,73,139,227,65,95,65,94,65,92,95,94,195,72,137,92,36,16,87,72,131,236,48,131,100,36,32,0,185,8,0,0,0,232,175,164,255,255,144,187,3,0,0,0,137,92,36,36,59,29,103,10, - 1,0,116,110,72,99,251,72,139,5,99,10,1,0,72,139,12,248,72,133,201,117,2,235,85,139,65,20,144,193,232,13,36,1,116,25,72,139,13,70,10,1,0,72,139,12,249,232,133,21,0,0,131,248,255,116,4,255,68,36,32,72,139,5,45,10,1,0,72,139,12,248,72,131,193,48, - 255,21,39,202,0,0,72,139,13,24,10,1,0,72,139,12,249,232,191,185,255,255,72,139,5,8,10,1,0,72,131,36,248,0,255,195,235,134,185,8,0,0,0,232,65,164,255,255,139,68,36,32,72,139,92,36,72,72,131,196,48,95,195,204,204,64,83,72,131,236,32,139,65,20, - 72,139,217,193,232,13,144,168,1,116,40,139,65,20,144,193,232,6,168,1,116,29,72,139,73,8,232,108,185,255,255,240,129,99,20,191,254,255,255,51,192,72,137,67,8,72,137,3,137,67,16,72,131,196,32,91,195,204,204,72,131,236,40,131,249,254,117,13,232, - 10,199,255,255,199,0,9,0,0,0,235,66,133,201,120,46,59,13,232,8,1,0,115,38,72,99,201,72,141,21,220,4,1,0,72,139,193,131,225,63,72,193,232,6,72,141,12,201,72,139,4,194,15,182,68,200,56,131,224,64,235,18,232,203,198,255,255,199,0,9,0,0,0,232,16, - 186,255,255,51,192,72,131,196,40,195,204,139,5,26,15,1,0,144,195,65,84,65,85,65,86,72,129,236,80,4,0,0,72,139,5,180,241,0,0,72,51,196,72,137,132,36,16,4,0,0,77,139,225,77,139,240,76,139,233,72,133,201,117,26,72,133,210,116,21,232,121,198,255, - 255,199,0,22,0,0,0,232,190,185,255,255,233,169,3,0,0,77,133,246,116,230,77,133,228,116,225,72,131,250,2,15,130,149,3,0,0,72,137,156,36,72,4,0,0,72,137,172,36,64,4,0,0,72,137,180,36,56,4,0,0,72,137,188,36,48,4,0,0,76,137,188,36,40,4,0,0,76,141, - 122,255,77,15,175,254,76,3,249,51,201,72,137,76,36,32,102,102,102,15,31,132,0,0,0,0,0,51,210,73,139,199,73,43,197,73,247,246,72,141,88,1,72,131,251,8,15,135,155,0,0,0,77,59,253,118,117,75,141,52,46,73,139,221,72,139,254,73,59,247,119,42,15,31, - 0,73,186,112,137,222,94,149,183,117,147,72,139,211,72,139,207,73,139,196,255,21,247,193,0,0,133,192,72,15,79,223,73,3,254,73,59,255,118,217,77,139,198,73,139,215,73,59,223,116,36,73,43,223,102,102,102,15,31,132,0,0,0,0,0,15,182,2,15,182,12,19, - 136,4,19,136,10,72,141,82,1,73,131,232,1,117,234,77,43,254,77,59,253,119,148,72,139,76,36,32,72,131,233,1,72,137,76,36,32,15,136,134,2,0,0,76,139,108,204,48,76,139,188,204,32,2,0,0,233,76,255,255,255,72,209,235,73,15,175,222,74,141,52,43,73, - 186,112,137,222,94,149,183,117,147,72,139,214,73,139,205,73,139,196,255,21,104,193,0,0,133,192,126,47,77,139,206,76,139,198,76,59,238,116,36,102,15,31,132,0,0,0,0,0,65,15,182,0,73,139,208,72,43,211,15,182,10,136,2,65,136,8,73,255,192,73,131, - 233,1,117,229,73,186,112,137,222,94,149,183,117,147,73,139,215,73,139,205,73,139,196,255,21,28,193,0,0,133,192,126,48,77,139,198,73,139,215,77,59,239,116,37,77,139,205,77,43,207,15,31,128,0,0,0,0,15,182,2,65,15,182,12,17,65,136,4,17,136,10,72, - 141,82,1,73,131,232,1,117,232,73,186,112,137,222,94,149,183,117,147,73,139,215,72,139,206,73,139,196,255,21,207,192,0,0,133,192,126,51,77,139,198,73,139,215,73,59,247,116,40,76,139,206,77,43,207,102,102,15,31,132,0,0,0,0,0,15,182,2,65,15,182, - 12,17,65,136,4,17,136,10,72,141,82,1,73,131,232,1,117,232,73,139,221,73,139,255,102,144,72,59,243,118,43,73,3,222,72,59,222,115,35,73,186,112,137,222,94,149,183,117,147,72,139,214,72,139,203,73,139,196,255,21,106,192,0,0,133,192,126,219,235, - 41,15,31,64,0,73,3,222,73,59,223,119,29,73,186,112,137,222,94,149,183,117,147,72,139,214,72,139,203,73,139,196,255,21,63,192,0,0,133,192,126,219,72,139,239,73,43,254,72,59,254,118,29,73,186,112,137,222,94,149,183,117,147,72,139,214,72,139,207, - 73,139,196,255,21,23,192,0,0,133,192,127,216,72,59,251,114,56,77,139,198,72,139,215,116,30,76,139,203,76,43,207,15,182,2,65,15,182,12,17,65,136,4,17,136,10,72,141,82,1,73,131,232,1,117,232,72,59,247,72,139,195,72,15,69,198,72,139,240,233,70, - 255,255,255,72,59,245,115,40,144,73,43,238,72,59,238,118,31,73,186,112,137,222,94,149,183,117,147,72,139,214,72,139,205,73,139,196,255,21,175,191,0,0,133,192,116,219,235,37,73,43,238,73,59,237,118,29,73,186,112,137,222,94,149,183,117,147,72, - 139,214,72,139,205,73,139,196,255,21,136,191,0,0,133,192,116,219,73,139,207,72,139,197,72,43,203,73,43,197,72,59,193,72,139,76,36,32,124,43,76,59,237,115,21,76,137,108,204,48,72,137,172,204,32,2,0,0,72,255,193,72,137,76,36,32,73,59,223,15,131, - 158,253,255,255,76,139,235,233,3,253,255,255,73,59,223,115,21,72,137,92,204,48,76,137,188,204,32,2,0,0,72,255,193,72,137,76,36,32,76,59,237,15,131,115,253,255,255,76,139,253,233,216,252,255,255,72,139,188,36,48,4,0,0,72,139,180,36,56,4,0,0,72, - 139,172,36,64,4,0,0,72,139,156,36,72,4,0,0,76,139,188,36,40,4,0,0,72,139,140,36,16,4,0,0,72,51,204,232,128,146,255,255,72,129,196,80,4,0,0,65,94,65,93,65,92,195,204,204,72,137,92,36,8,72,137,116,36,16,87,72,131,236,32,69,51,210,73,139,216,76, - 139,218,77,133,201,117,49,72,133,201,117,49,72,133,210,116,20,232,116,194,255,255,187,22,0,0,0,137,24,232,184,181,255,255,68,139,211,72,139,92,36,48,65,139,194,72,139,116,36,56,72,131,196,32,95,195,72,133,201,116,212,77,133,219,116,207,77,133, - 201,117,5,68,136,17,235,217,72,133,219,117,5,68,136,17,235,187,72,43,217,72,139,209,77,139,195,73,139,249,73,131,249,255,117,20,138,4,19,136,2,72,255,194,132,192,116,177,73,131,232,1,117,238,235,46,138,4,19,72,139,247,136,2,72,255,194,132,192, - 116,154,73,131,232,1,116,6,72,131,239,1,117,229,77,133,192,72,141,70,255,72,15,68,198,72,133,192,117,3,68,136,18,77,133,192,15,133,114,255,255,255,73,131,249,255,117,14,70,136,84,25,255,69,141,80,80,233,94,255,255,255,68,136,17,232,187,193,255, - 255,187,34,0,0,0,233,66,255,255,255,204,72,137,92,36,8,72,137,116,36,16,87,76,139,210,72,141,53,139,204,254,255,65,131,226,15,72,139,250,73,43,250,72,139,218,76,139,193,15,87,219,73,141,66,255,243,15,111,15,72,131,248,14,119,115,139,132,134, - 108,54,1,0,72,3,198,255,224,102,15,115,217,1,235,96,102,15,115,217,2,235,89,102,15,115,217,3,235,82,102,15,115,217,4,235,75,102,15,115,217,5,235,68,102,15,115,217,6,235,61,102,15,115,217,7,235,54,102,15,115,217,8,235,47,102,15,115,217,9,235, - 40,102,15,115,217,10,235,33,102,15,115,217,11,235,26,102,15,115,217,12,235,19,102,15,115,217,13,235,12,102,15,115,217,14,235,5,102,15,115,217,15,15,87,192,65,185,15,0,0,0,102,15,116,193,102,15,215,192,133,192,15,132,51,1,0,0,15,188,208,77,133, - 210,117,6,69,141,89,242,235,20,69,51,219,139,194,185,16,0,0,0,73,43,202,72,59,193,65,15,146,195,65,139,193,43,194,65,59,193,15,135,207,0,0,0,139,140,134,168,54,1,0,72,3,206,255,225,102,15,115,249,1,102,15,115,217,1,233,180,0,0,0,102,15,115,249, - 2,102,15,115,217,2,233,165,0,0,0,102,15,115,249,3,102,15,115,217,3,233,150,0,0,0,102,15,115,249,4,102,15,115,217,4,233,135,0,0,0,102,15,115,249,5,102,15,115,217,5,235,123,102,15,115,249,6,102,15,115,217,6,235,111,102,15,115,249,7,102,15,115, - 217,7,235,99,102,15,115,249,8,102,15,115,217,8,235,87,102,15,115,249,9,102,15,115,217,9,235,75,102,15,115,249,10,102,15,115,217,10,235,63,102,15,115,249,11,102,15,115,217,11,235,51,102,15,115,249,12,102,15,115,217,12,235,39,102,15,115,249,13, - 102,15,115,217,13,235,27,102,15,115,249,14,102,15,115,217,14,235,15,102,15,115,249,15,102,15,115,217,15,235,3,15,87,201,69,133,219,15,133,226,0,0,0,243,15,111,87,16,102,15,111,194,102,15,116,195,102,15,215,192,133,192,117,53,72,139,211,73,139, - 200,72,139,92,36,16,72,139,116,36,24,95,233,211,1,0,0,77,133,210,117,208,68,56,87,1,15,132,168,0,0,0,72,139,92,36,16,72,139,116,36,24,95,233,180,1,0,0,15,188,200,139,193,73,43,194,72,131,192,16,72,131,248,16,119,185,68,43,201,65,131,249,15,119, - 121,66,139,140,142,232,54,1,0,72,3,206,255,225,102,15,115,250,1,235,101,102,15,115,250,2,235,94,102,15,115,250,3,235,87,102,15,115,250,4,235,80,102,15,115,250,5,235,73,102,15,115,250,6,235,66,102,15,115,250,7,235,59,102,15,115,250,8,235,52,102, - 15,115,250,9,235,45,102,15,115,250,10,235,38,102,15,115,250,11,235,31,102,15,115,250,12,235,24,102,15,115,250,13,235,17,102,15,115,250,14,235,10,102,15,115,250,15,235,3,15,87,210,102,15,235,202,65,15,182,0,132,192,116,56,15,31,64,0,15,31,132, - 0,0,0,0,0,15,190,192,102,15,110,192,102,15,96,192,102,15,96,192,102,15,112,192,0,102,15,116,193,102,15,215,192,133,192,117,26,65,15,182,64,1,73,255,192,132,192,117,212,51,192,72,139,92,36,16,72,139,116,36,24,95,195,72,139,92,36,16,73,139,192, - 72,139,116,36,24,95,195,15,31,0,162,51,1,0,169,51,1,0,176,51,1,0,183,51,1,0,190,51,1,0,197,51,1,0,204,51,1,0,211,51,1,0,218,51,1,0,225,51,1,0,232,51,1,0,239,51,1,0,246,51,1,0,253,51,1,0,4,52,1,0,94,52,1,0,109,52,1,0,124,52,1,0,139,52,1,0,154, - 52,1,0,166,52,1,0,178,52,1,0,190,52,1,0,202,52,1,0,214,52,1,0,226,52,1,0,238,52,1,0,250,52,1,0,6,53,1,0,18,53,1,0,30,53,1,0,156,53,1,0,163,53,1,0,170,53,1,0,177,53,1,0,184,53,1,0,191,53,1,0,198,53,1,0,205,53,1,0,212,53,1,0,219,53,1,0,226,53, - 1,0,233,53,1,0,240,53,1,0,247,53,1,0,254,53,1,0,5,54,1,0,72,131,236,88,72,139,5,245,232,0,0,72,51,196,72,137,68,36,64,51,192,76,139,202,72,131,248,32,76,139,193,115,119,198,68,4,32,0,72,255,192,72,131,248,32,124,240,138,2,235,31,15,182,208,72, - 193,234,3,15,182,192,131,224,7,15,182,76,20,32,15,171,193,73,255,193,136,76,20,32,65,138,1,132,192,117,221,235,31,65,15,182,193,186,1,0,0,0,65,15,182,201,131,225,7,72,193,232,3,211,226,132,84,4,32,117,31,73,255,192,69,138,8,69,132,201,117,217, - 51,192,72,139,76,36,64,72,51,204,232,42,141,255,255,72,131,196,88,195,73,139,192,235,233,232,179,215,255,255,204,204,204,69,51,192,233,0,0,0,0,72,137,92,36,8,87,72,131,236,64,72,139,218,72,139,249,72,133,201,117,20,232,38,189,255,255,199,0,22, - 0,0,0,232,107,176,255,255,51,192,235,96,72,133,219,116,231,72,59,251,115,242,73,139,208,72,141,76,36,32,232,244,73,255,255,72,139,76,36,48,72,141,83,255,131,121,8,0,116,36,72,255,202,72,59,250,119,10,15,182,2,246,68,8,25,4,117,238,72,139,203, - 72,43,202,72,139,211,131,225,1,72,43,209,72,255,202,128,124,36,56,0,116,12,72,139,76,36,32,131,161,168,3,0,0,253,72,139,194,72,139,92,36,80,72,131,196,64,95,195,72,131,236,40,72,133,201,117,25,232,158,188,255,255,199,0,22,0,0,0,232,227,175,255, - 255,72,131,200,255,72,131,196,40,195,76,139,193,51,210,72,139,13,102,250,0,0,72,131,196,40,72,255,37,83,192,0,0,204,204,204,72,137,92,36,8,87,72,131,236,32,72,139,218,72,139,249,72,133,201,117,10,72,139,202,232,207,208,255,255,235,31,72,133, - 219,117,7,232,127,174,255,255,235,17,72,131,251,224,118,45,232,58,188,255,255,199,0,12,0,0,0,51,192,72,139,92,36,48,72,131,196,32,95,195,232,106,245,255,255,133,192,116,223,72,139,203,232,58,54,255,255,133,192,116,211,72,139,13,243,249,0,0,76, - 139,203,76,139,199,51,210,255,21,213,191,0,0,72,133,192,116,209,235,196,204,204,72,137,92,36,8,72,137,108,36,16,72,137,116,36,24,87,72,131,236,80,73,99,217,73,139,248,139,242,72,139,233,69,133,201,126,20,72,139,211,73,139,200,232,53,84,255,255, - 59,195,141,88,1,124,2,139,216,72,131,100,36,64,0,68,139,203,72,131,100,36,56,0,76,139,199,72,131,100,36,48,0,139,214,139,132,36,136,0,0,0,72,139,205,137,68,36,40,72,139,132,36,128,0,0,0,72,137,68,36,32,232,74,148,255,255,72,139,92,36,96,72,139, - 108,36,104,72,139,116,36,112,72,131,196,80,95,195,204,72,133,201,15,132,0,1,0,0,83,72,131,236,32,72,139,217,72,139,73,24,72,59,13,136,238,0,0,116,5,232,129,173,255,255,72,139,75,32,72,59,13,126,238,0,0,116,5,232,111,173,255,255,72,139,75,40, - 72,59,13,116,238,0,0,116,5,232,93,173,255,255,72,139,75,48,72,59,13,106,238,0,0,116,5,232,75,173,255,255,72,139,75,56,72,59,13,96,238,0,0,116,5,232,57,173,255,255,72,139,75,64,72,59,13,86,238,0,0,116,5,232,39,173,255,255,72,139,75,72,72,59,13, - 76,238,0,0,116,5,232,21,173,255,255,72,139,75,104,72,59,13,90,238,0,0,116,5,232,3,173,255,255,72,139,75,112,72,59,13,80,238,0,0,116,5,232,241,172,255,255,72,139,75,120,72,59,13,70,238,0,0,116,5,232,223,172,255,255,72,139,139,128,0,0,0,72,59, - 13,57,238,0,0,116,5,232,202,172,255,255,72,139,139,136,0,0,0,72,59,13,44,238,0,0,116,5,232,181,172,255,255,72,139,139,144,0,0,0,72,59,13,31,238,0,0,116,5,232,160,172,255,255,72,131,196,32,91,195,204,204,72,133,201,116,102,83,72,131,236,32,72, - 139,217,72,139,9,72,59,13,105,237,0,0,116,5,232,122,172,255,255,72,139,75,8,72,59,13,95,237,0,0,116,5,232,104,172,255,255,72,139,75,16,72,59,13,85,237,0,0,116,5,232,86,172,255,255,72,139,75,88,72,59,13,139,237,0,0,116,5,232,68,172,255,255,72, - 139,75,96,72,59,13,129,237,0,0,116,5,232,50,172,255,255,72,131,196,32,91,195,72,133,201,15,132,254,0,0,0,72,137,92,36,8,72,137,108,36,16,86,72,131,236,32,189,7,0,0,0,72,139,217,139,213,232,225,0,0,0,72,141,75,56,139,213,232,214,0,0,0,141,117, - 5,139,214,72,141,75,112,232,200,0,0,0,72,141,139,208,0,0,0,139,214,232,186,0,0,0,72,141,139,48,1,0,0,141,85,251,232,171,0,0,0,72,139,139,64,1,0,0,232,195,171,255,255,72,139,139,72,1,0,0,232,183,171,255,255,72,139,139,80,1,0,0,232,171,171,255, - 255,72,141,139,96,1,0,0,139,213,232,121,0,0,0,72,141,139,152,1,0,0,139,213,232,107,0,0,0,72,141,139,208,1,0,0,139,214,232,93,0,0,0,72,141,139,48,2,0,0,139,214,232,79,0,0,0,72,141,139,144,2,0,0,141,85,251,232,64,0,0,0,72,139,139,160,2,0,0,232, - 88,171,255,255,72,139,139,168,2,0,0,232,76,171,255,255,72,139,139,176,2,0,0,232,64,171,255,255,72,139,139,184,2,0,0,232,52,171,255,255,72,139,92,36,48,72,139,108,36,56,72,131,196,32,94,195,72,137,92,36,8,87,72,131,236,32,72,141,60,209,72,139, - 217,72,59,207,116,17,72,139,11,232,6,171,255,255,72,131,195,8,72,59,223,117,239,72,139,92,36,48,72,131,196,32,95,195,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,102,102,15,31,132,0,0,0,0,0,72,43,209,73,131,248,8,114,34,246, - 193,7,116,20,102,144,138,1,58,4,17,117,44,72,255,193,73,255,200,246,193,7,117,238,77,139,200,73,193,233,3,117,31,77,133,192,116,15,138,1,58,4,17,117,12,72,255,193,73,255,200,117,241,72,51,192,195,27,192,131,216,255,195,144,73,193,233,2,116,55, - 72,139,1,72,59,4,17,117,91,72,139,65,8,72,59,68,17,8,117,76,72,139,65,16,72,59,68,17,16,117,61,72,139,65,24,72,59,68,17,24,117,46,72,131,193,32,73,255,201,117,205,73,131,224,31,77,139,200,73,193,233,3,116,155,72,139,1,72,59,4,17,117,27,72,131, - 193,8,73,255,201,117,238,73,131,224,7,235,131,72,131,193,8,72,131,193,8,72,131,193,8,72,139,12,10,72,15,200,72,15,201,72,59,193,27,192,131,216,255,195,204,72,255,37,129,187,0,0,204,72,139,196,72,137,88,8,72,137,104,16,72,137,112,24,72,137,120, - 32,65,86,72,131,236,48,69,51,246,73,139,217,73,139,232,72,139,242,72,139,249,72,133,210,15,132,35,1,0,0,77,133,192,15,132,26,1,0,0,68,56,50,117,18,72,133,201,15,132,19,1,0,0,102,68,137,49,233,10,1,0,0,69,56,113,40,117,8,72,139,203,232,33,70, - 255,255,72,139,83,24,68,139,82,12,65,129,250,233,253,0,0,117,39,76,141,13,201,255,0,0,72,137,92,36,32,76,139,197,72,139,214,72,139,207,232,114,2,0,0,131,201,255,133,192,15,72,193,233,198,0,0,0,76,57,178,56,1,0,0,117,20,72,133,255,15,132,164, - 0,0,0,15,182,6,102,137,7,233,153,0,0,0,15,182,14,72,139,2,102,68,57,52,72,125,97,68,139,74,8,65,131,249,1,126,43,65,59,233,124,38,65,139,198,72,133,255,76,139,198,186,9,0,0,0,15,149,192,65,139,202,137,68,36,40,72,137,124,36,32,232,242,197,255, - 255,133,192,117,19,72,139,67,24,72,99,72,8,72,59,233,114,15,68,56,118,1,116,9,72,139,67,24,139,64,8,235,75,198,67,48,1,131,200,255,199,67,44,42,0,0,0,235,59,65,139,198,65,185,1,0,0,0,72,133,255,76,139,198,65,139,202,15,149,192,137,68,36,40,65, - 141,81,8,72,137,124,36,32,232,155,197,255,255,133,192,116,197,184,1,0,0,0,235,9,76,137,53,229,254,0,0,51,192,72,139,92,36,64,72,139,108,36,72,72,139,116,36,80,72,139,124,36,88,72,131,196,48,65,94,195,76,139,218,76,139,209,77,133,192,117,3,51, - 192,195,65,15,183,10,77,141,82,2,65,15,183,19,77,141,91,2,141,65,191,131,248,25,68,141,73,32,141,66,191,68,15,71,201,131,248,25,141,74,32,65,139,193,15,71,202,43,193,117,11,69,133,201,116,6,73,131,232,1,117,196,195,204,139,5,126,254,0,0,195, - 204,204,204,204,204,204,204,204,204,204,204,102,102,15,31,132,0,0,0,0,0,72,131,236,16,76,137,20,36,76,137,92,36,8,77,51,219,76,141,84,36,24,76,43,208,77,15,66,211,101,76,139,28,37,16,0,0,0,77,59,211,115,22,102,65,129,226,0,240,77,141,155,0,240, - 255,255,65,198,3,0,77,59,211,117,240,76,139,20,36,76,139,92,36,8,72,131,196,16,195,204,204,51,192,56,1,116,14,72,59,194,116,9,72,255,192,128,60,8,0,117,242,195,204,204,204,233,3,0,0,0,204,204,204,72,137,92,36,8,72,137,108,36,16,72,137,116,36, - 24,87,72,131,236,48,72,99,249,73,139,217,139,207,65,139,240,72,139,234,232,53,215,255,255,72,131,248,255,117,17,198,67,48,1,199,67,44,9,0,0,0,72,131,200,255,235,86,68,139,206,76,141,68,36,32,72,139,213,72,139,200,255,21,214,185,0,0,133,192,117, - 18,255,21,140,184,0,0,139,200,72,139,211,232,234,181,255,255,235,208,72,139,68,36,32,72,131,248,255,116,197,72,139,215,76,141,5,243,242,0,0,131,226,63,72,139,207,72,193,249,6,72,141,20,210,73,139,12,200,128,100,209,56,253,72,139,92,36,64,72, - 139,108,36,72,72,139,116,36,80,72,131,196,48,95,195,204,204,204,64,83,72,131,236,64,72,139,68,36,112,72,139,217,72,141,76,36,48,72,137,68,36,32,232,67,4,0,0,72,131,248,4,119,26,139,84,36,48,185,253,255,0,0,129,250,255,255,0,0,15,71,209,72,133, - 219,116,3,102,137,19,72,131,196,64,91,195,204,72,137,92,36,16,72,137,108,36,24,87,65,84,65,85,65,86,65,87,72,131,236,48,72,139,58,51,192,77,139,225,73,139,232,76,139,250,76,139,241,72,133,201,15,132,231,0,0,0,72,139,217,77,133,192,15,132,176, - 0,0,0,76,139,172,36,128,0,0,0,56,7,117,8,65,184,1,0,0,0,235,28,56,71,1,117,8,65,184,2,0,0,0,235,15,138,71,2,246,216,77,27,192,73,247,216,73,131,192,3,77,139,204,76,137,108,36,32,72,139,215,72,141,76,36,96,232,154,3,0,0,72,139,208,72,131,248, - 255,116,123,51,192,72,133,210,116,108,139,76,36,96,129,249,255,255,0,0,118,59,72,131,253,1,118,73,129,193,0,0,255,255,65,184,0,216,0,0,139,193,137,76,36,96,193,232,10,72,255,205,102,65,11,192,102,137,3,184,255,3,0,0,102,35,200,72,131,195,2,184, - 0,220,0,0,102,11,200,51,192,102,137,11,72,3,250,72,131,195,2,72,131,237,1,15,133,88,255,255,255,73,43,222,73,137,63,72,209,251,72,139,195,233,140,0,0,0,72,139,248,102,137,3,235,231,73,137,63,65,198,69,48,1,65,199,69,44,42,0,0,0,235,110,72,139, - 172,36,128,0,0,0,72,139,216,56,7,117,8,65,184,1,0,0,0,235,28,56,71,1,117,8,65,184,2,0,0,0,235,15,138,71,2,246,216,77,27,192,73,247,216,73,131,192,3,77,139,204,72,137,108,36,32,72,139,215,51,201,232,191,2,0,0,72,131,248,255,116,24,72,133,192, - 116,142,72,131,248,4,117,3,72,255,195,72,3,248,72,255,195,51,192,235,168,198,69,48,1,199,69,44,42,0,0,0,72,131,200,255,72,139,92,36,104,72,139,108,36,112,72,131,196,48,65,95,65,94,65,93,65,92,95,195,204,204,102,137,76,36,8,72,131,236,40,232, - 70,4,0,0,133,192,116,31,76,141,68,36,56,186,1,0,0,0,72,141,76,36,48,232,130,4,0,0,133,192,116,7,15,183,68,36,48,235,5,184,255,255,0,0,72,131,196,40,195,204,72,139,196,72,137,88,8,72,137,104,16,72,137,112,24,72,137,120,32,65,86,72,131,236,32, - 73,139,89,56,72,139,242,77,139,240,72,139,233,73,139,209,72,139,206,73,139,249,76,141,67,4,232,180,129,255,255,139,69,4,36,102,246,216,184,1,0,0,0,69,27,192,65,247,216,68,3,192,68,133,67,4,116,17,76,139,207,77,139,198,72,139,214,72,139,205,232, - 244,32,255,255,72,139,92,36,48,72,139,108,36,56,72,139,116,36,64,72,139,124,36,72,72,131,196,32,65,94,195,204,72,137,92,36,8,72,137,124,36,16,85,72,139,236,72,131,236,96,72,131,101,192,0,131,61,178,244,0,0,0,198,69,208,0,198,69,232,0,198,69, - 240,0,198,69,248,0,117,16,15,16,5,209,227,0,0,198,69,232,1,243,15,127,69,216,72,141,85,192,232,247,0,0,0,128,125,232,2,139,248,117,11,72,139,77,192,131,161,168,3,0,0,253,128,125,240,0,116,15,139,93,236,72,141,77,192,232,2,64,255,255,137,88,32, - 128,125,248,0,116,15,139,93,244,72,141,77,192,232,237,63,255,255,137,88,36,72,139,92,36,112,139,199,72,139,124,36,120,72,131,196,96,93,195,72,139,196,72,137,88,8,72,137,112,16,87,72,131,236,48,72,139,250,72,139,217,72,133,201,117,37,72,137,80, - 240,69,51,201,72,33,72,232,69,51,192,198,66,48,1,199,66,44,22,0,0,0,51,210,232,121,166,255,255,131,200,255,235,85,139,65,20,131,206,255,193,232,13,144,168,1,116,61,232,213,172,255,255,72,139,203,139,240,232,223,233,255,255,72,139,203,232,203, - 220,255,255,139,200,72,139,215,232,149,4,0,0,133,192,121,5,131,206,255,235,19,72,139,75,40,72,133,201,116,10,232,74,163,255,255,72,131,99,40,0,72,139,203,232,173,5,0,0,139,198,72,139,92,36,64,72,139,116,36,72,72,131,196,48,95,195,204,204,204, - 72,139,196,72,137,88,16,72,137,72,8,87,72,131,236,48,72,139,250,72,139,217,72,133,201,117,46,198,66,48,1,199,66,44,22,0,0,0,72,137,80,240,72,33,72,232,69,51,201,69,51,192,51,210,232,209,165,255,255,131,200,255,72,139,92,36,72,72,131,196,48,95, - 195,139,65,20,144,193,232,12,36,1,116,7,232,63,5,0,0,235,224,232,140,174,255,255,144,72,139,215,72,139,203,232,236,254,255,255,139,248,72,139,203,232,130,174,255,255,139,199,235,196,204,204,64,83,85,86,87,65,84,65,86,65,87,72,131,236,64,72,139, - 5,118,219,0,0,72,51,196,72,137,68,36,48,72,139,180,36,160,0,0,0,76,141,21,199,248,0,0,69,51,219,72,141,61,95,42,0,0,77,133,201,72,139,194,76,139,226,77,15,69,209,72,133,210,65,141,107,1,72,15,69,250,68,139,253,77,15,69,248,72,247,216,77,27,246, - 76,35,241,77,133,255,117,12,72,199,192,254,255,255,255,233,77,1,0,0,102,69,57,90,6,117,104,68,15,182,15,72,255,199,69,132,201,120,23,77,133,246,116,3,69,137,14,69,132,201,65,15,149,195,73,139,195,233,35,1,0,0,65,138,193,36,224,60,192,117,5,65, - 176,2,235,30,65,138,193,36,240,60,224,117,5,65,176,3,235,16,65,138,193,36,248,60,240,15,133,239,0,0,0,65,176,4,65,15,182,192,185,7,0,0,0,43,200,139,213,211,226,65,138,216,43,213,65,35,209,235,41,69,138,66,4,65,139,18,65,138,90,6,65,141,64,254, - 60,2,15,135,188,0,0,0,64,58,221,15,130,179,0,0,0,65,58,216,15,131,170,0,0,0,15,182,235,73,59,239,68,139,205,77,15,67,207,235,30,15,182,15,72,255,199,138,193,36,192,60,128,15,133,137,0,0,0,139,194,131,225,63,193,224,6,139,209,11,208,72,139,199, - 73,43,196,73,59,193,114,215,76,59,205,115,28,65,15,182,192,65,42,217,102,65,137,66,4,15,182,195,102,65,137,66,6,65,137,18,233,3,255,255,255,141,130,0,40,255,255,61,255,7,0,0,118,68,129,250,0,0,17,0,115,60,65,15,182,192,199,68,36,32,128,0,0,0, - 199,68,36,36,0,8,0,0,199,68,36,40,0,0,1,0,59,84,132,24,114,26,77,133,246,116,3,65,137,22,247,218,73,139,210,72,27,201,72,35,205,232,84,9,0,0,235,11,72,139,214,73,139,202,232,51,9,0,0,72,139,76,36,48,72,51,204,232,122,126,255,255,72,131,196,64, - 65,95,65,94,65,92,95,94,93,91,195,204,204,204,64,83,72,131,236,64,72,139,5,75,227,0,0,51,219,72,131,248,254,117,46,72,137,92,36,48,68,141,67,3,137,92,36,40,72,141,13,47,121,0,0,69,51,201,68,137,68,36,32,186,0,0,0,64,255,21,228,176,0,0,72,137, - 5,21,227,0,0,72,131,248,255,15,149,195,139,195,72,131,196,64,91,195,204,204,72,139,196,72,137,88,8,72,137,104,16,72,137,112,24,87,72,131,236,64,72,131,96,216,0,73,139,248,77,139,200,139,242,68,139,194,72,139,233,72,139,209,72,139,13,211,226, - 0,0,255,21,37,179,0,0,139,216,133,192,117,106,255,21,105,177,0,0,131,248,6,117,95,72,139,13,181,226,0,0,72,131,249,253,119,6,255,21,97,176,0,0,72,131,100,36,48,0,72,141,13,156,120,0,0,131,100,36,40,0,65,184,3,0,0,0,69,51,201,68,137,68,36,32, - 186,0,0,0,64,255,21,70,176,0,0,72,131,100,36,32,0,76,139,207,72,139,200,72,137,5,107,226,0,0,68,139,198,72,139,213,255,21,183,178,0,0,139,216,72,139,108,36,88,139,195,72,139,92,36,80,72,139,116,36,96,72,131,196,64,95,195,204,204,204,204,204, - 204,72,131,236,40,72,139,13,53,226,0,0,72,131,249,253,119,6,255,21,225,175,0,0,72,131,196,40,195,72,137,92,36,8,72,137,116,36,16,87,72,131,236,32,72,99,249,72,139,242,139,207,232,36,207,255,255,72,131,248,255,117,4,51,219,235,90,72,139,5,39, - 235,0,0,185,2,0,0,0,131,255,1,117,9,64,132,184,200,0,0,0,117,13,59,249,117,32,246,128,128,0,0,0,1,116,23,232,238,206,255,255,185,1,0,0,0,72,139,216,232,225,206,255,255,72,59,195,116,190,139,207,232,213,206,255,255,72,139,200,255,21,104,175,0, - 0,133,192,117,170,255,21,78,176,0,0,139,216,139,207,232,49,207,255,255,72,139,215,76,141,5,195,234,0,0,131,226,63,72,139,207,72,193,249,6,72,141,20,210,73,139,12,200,198,68,209,56,0,133,219,116,15,72,139,214,139,203,232,126,173,255,255,131,200, - 255,235,2,51,192,72,139,92,36,48,72,139,116,36,56,72,131,196,32,95,195,204,204,204,137,76,36,8,72,131,236,88,76,99,193,69,51,201,65,131,248,254,117,24,198,66,56,1,68,137,74,52,198,66,48,1,199,66,44,9,0,0,0,233,141,0,0,0,133,201,120,96,68,59, - 5,77,238,0,0,115,87,73,139,200,76,141,21,65,234,0,0,131,225,63,73,139,192,72,193,248,6,72,141,12,201,73,139,4,194,246,68,200,56,1,116,52,72,141,68,36,96,72,137,84,36,64,68,137,68,36,120,72,141,84,36,48,68,137,68,36,48,76,141,76,36,120,76,141, - 68,36,56,72,137,68,36,56,72,141,76,36,112,232,54,0,0,0,235,44,198,66,56,1,69,51,192,68,137,74,52,51,201,198,66,48,1,72,137,84,36,40,199,66,44,9,0,0,0,51,210,76,137,76,36,32,232,247,160,255,255,131,200,255,72,131,196,88,195,204,204,204,72,137, - 92,36,8,76,137,76,36,32,87,72,131,236,32,73,139,249,73,139,216,139,10,232,100,208,255,255,144,72,139,3,72,99,8,76,139,209,72,139,83,8,72,139,193,72,193,248,6,76,141,13,136,233,0,0,65,131,226,63,79,141,4,210,73,139,4,193,66,246,68,192,56,1,116, - 9,232,27,254,255,255,139,216,235,14,198,66,48,1,199,66,44,9,0,0,0,131,203,255,139,15,232,62,208,255,255,139,195,72,139,92,36,48,72,131,196,32,95,195,204,131,73,24,255,51,192,72,137,1,72,137,65,8,137,65,16,72,137,65,28,72,137,65,40,135,65,20, - 195,204,204,204,204,204,204,204,204,204,204,204,204,72,131,236,88,102,15,127,116,36,32,131,61,171,243,0,0,0,15,133,233,2,0,0,102,15,40,216,102,15,40,224,102,15,115,211,52,102,72,15,126,192,102,15,251,29,15,118,0,0,102,15,40,232,102,15,84,45, - 211,117,0,0,102,15,47,45,203,117,0,0,15,132,133,2,0,0,102,15,40,208,243,15,230,243,102,15,87,237,102,15,47,197,15,134,47,2,0,0,102,15,219,21,247,117,0,0,242,15,92,37,127,118,0,0,102,15,47,53,7,119,0,0,15,132,216,1,0,0,102,15,84,37,89,119,0,0, - 76,139,200,72,35,5,223,117,0,0,76,35,13,232,117,0,0,73,209,225,73,3,193,102,72,15,110,200,102,15,47,37,245,118,0,0,15,130,223,0,0,0,72,193,232,44,102,15,235,21,67,118,0,0,102,15,235,13,59,118,0,0,76,141,13,164,135,0,0,242,15,92,202,242,65,15, - 89,12,193,102,15,40,209,102,15,40,193,76,141,13,107,119,0,0,242,15,16,29,131,118,0,0,242,15,16,13,75,118,0,0,242,15,89,218,242,15,89,202,242,15,89,194,102,15,40,224,242,15,88,29,83,118,0,0,242,15,88,13,27,118,0,0,242,15,89,224,242,15,89,218, - 242,15,89,200,242,15,88,29,39,118,0,0,242,15,88,202,242,15,89,220,242,15,88,203,242,15,16,45,147,117,0,0,242,15,89,13,75,117,0,0,242,15,89,238,242,15,92,233,242,65,15,16,4,193,72,141,21,6,127,0,0,242,15,16,20,194,242,15,16,37,89,117,0,0,242, - 15,89,230,242,15,88,196,242,15,88,213,242,15,88,194,102,15,111,116,36,32,72,131,196,88,195,102,102,102,102,102,102,15,31,132,0,0,0,0,0,242,15,16,21,72,117,0,0,242,15,92,5,80,117,0,0,242,15,88,208,102,15,40,200,242,15,94,202,242,15,16,37,76,118, - 0,0,242,15,16,45,100,118,0,0,102,15,40,240,242,15,89,241,242,15,88,201,102,15,40,209,242,15,89,209,242,15,89,226,242,15,89,234,242,15,88,37,16,118,0,0,242,15,88,45,40,118,0,0,242,15,89,209,242,15,89,226,242,15,89,210,242,15,89,209,242,15,89, - 234,242,15,16,21,172,116,0,0,242,15,88,229,242,15,92,230,242,15,16,53,140,116,0,0,102,15,40,216,102,15,219,29,16,118,0,0,242,15,92,195,242,15,88,224,102,15,40,195,102,15,40,204,242,15,89,226,242,15,89,194,242,15,89,206,242,15,89,222,242,15,88, - 196,242,15,88,193,242,15,88,195,102,15,111,116,36,32,72,131,196,88,195,102,15,235,21,145,116,0,0,242,15,92,21,137,116,0,0,242,15,16,234,102,15,219,21,237,115,0,0,102,72,15,126,208,102,15,115,213,52,102,15,250,45,11,117,0,0,243,15,230,245,233, - 241,253,255,255,102,144,117,30,242,15,16,13,102,115,0,0,68,139,5,159,117,0,0,232,138,6,0,0,235,72,15,31,132,0,0,0,0,0,242,15,16,13,104,115,0,0,68,139,5,133,117,0,0,232,108,6,0,0,235,42,102,102,15,31,132,0,0,0,0,0,72,59,5,57,115,0,0,116,23,72, - 59,5,32,115,0,0,116,206,72,11,5,71,115,0,0,102,72,15,110,192,102,144,102,15,111,116,36,32,72,131,196,88,195,15,31,68,0,0,72,51,192,197,225,115,208,52,196,225,249,126,192,197,225,251,29,43,115,0,0,197,250,230,243,197,249,219,45,239,114,0,0,197, - 249,47,45,231,114,0,0,15,132,65,2,0,0,197,209,239,237,197,249,47,197,15,134,227,1,0,0,197,249,219,21,27,115,0,0,197,251,92,37,163,115,0,0,197,249,47,53,43,116,0,0,15,132,142,1,0,0,197,249,219,13,13,115,0,0,197,249,219,29,21,115,0,0,197,225,115, - 243,1,197,225,212,201,196,225,249,126,200,197,217,219,37,95,116,0,0,197,249,47,37,23,116,0,0,15,130,177,0,0,0,72,193,232,44,197,233,235,21,101,115,0,0,197,241,235,13,93,115,0,0,76,141,13,198,132,0,0,197,243,92,202,196,193,115,89,12,193,76,141, - 13,149,116,0,0,197,243,89,193,197,251,16,29,169,115,0,0,197,251,16,45,113,115,0,0,196,226,241,169,29,136,115,0,0,196,226,241,169,45,31,115,0,0,242,15,16,224,196,226,241,169,29,98,115,0,0,197,251,89,224,196,226,209,185,200,196,226,225,185,204, - 197,243,89,13,140,114,0,0,197,251,16,45,196,114,0,0,196,226,201,171,233,242,65,15,16,4,193,72,141,21,66,124,0,0,242,15,16,20,194,197,235,88,213,196,226,201,185,5,144,114,0,0,197,251,88,194,197,249,111,116,36,32,72,131,196,88,195,144,197,251, - 16,21,152,114,0,0,197,251,92,5,160,114,0,0,197,235,88,208,197,251,94,202,197,251,16,37,160,115,0,0,197,251,16,45,184,115,0,0,197,251,89,241,197,243,88,201,197,243,89,209,196,226,233,169,37,115,115,0,0,196,226,233,169,45,138,115,0,0,197,235,89, - 209,197,219,89,226,197,235,89,210,197,235,89,209,197,211,89,234,197,219,88,229,197,219,92,230,197,249,219,29,134,115,0,0,197,251,92,195,197,219,88,224,197,219,89,13,230,113,0,0,197,219,89,37,238,113,0,0,197,227,89,5,230,113,0,0,197,227,89,29, - 206,113,0,0,197,251,88,196,197,251,88,193,197,251,88,195,197,249,111,116,36,32,72,131,196,88,195,197,233,235,21,255,113,0,0,197,235,92,21,247,113,0,0,197,209,115,210,52,197,233,219,21,90,113,0,0,197,249,40,194,197,209,250,45,126,114,0,0,197, - 250,230,245,233,64,254,255,255,15,31,68,0,0,117,46,197,251,16,13,214,112,0,0,68,139,5,15,115,0,0,232,250,3,0,0,197,249,111,116,36,32,72,131,196,88,195,102,102,102,102,102,102,102,15,31,132,0,0,0,0,0,197,251,16,13,200,112,0,0,68,139,5,229,114, - 0,0,232,204,3,0,0,197,249,111,116,36,32,72,131,196,88,195,144,72,59,5,153,112,0,0,116,39,72,59,5,128,112,0,0,116,206,72,11,5,167,112,0,0,102,72,15,110,200,68,139,5,179,114,0,0,232,150,3,0,0,235,4,15,31,64,0,197,249,111,116,36,32,72,131,196,88, - 195,204,72,131,33,0,72,131,200,255,198,66,48,1,199,66,44,42,0,0,0,195,72,131,34,0,72,139,193,195,72,139,196,83,72,131,236,80,242,15,16,132,36,128,0,0,0,139,217,242,15,16,140,36,136,0,0,0,186,192,255,0,0,137,72,200,72,139,140,36,144,0,0,0,242, - 15,17,64,224,242,15,17,72,232,242,15,17,88,216,76,137,64,208,232,36,7,0,0,72,141,76,36,32,232,146,159,255,255,133,192,117,7,139,203,232,143,3,0,0,242,15,16,68,36,64,72,131,196,80,91,195,204,204,204,72,137,92,36,8,72,137,116,36,16,87,72,131,236, - 32,139,217,72,139,242,131,227,31,139,249,246,193,8,116,20,64,132,246,121,15,185,1,0,0,0,232,99,7,0,0,131,227,247,235,87,185,4,0,0,0,64,132,249,116,17,72,15,186,230,9,115,10,232,72,7,0,0,131,227,251,235,60,64,246,199,1,116,22,72,15,186,230,10, - 115,15,185,8,0,0,0,232,44,7,0,0,131,227,254,235,32,64,246,199,2,116,26,72,15,186,230,11,115,19,64,246,199,16,116,10,185,16,0,0,0,232,10,7,0,0,131,227,253,64,246,199,16,116,20,72,15,186,230,12,115,13,185,32,0,0,0,232,240,6,0,0,131,227,239,72, - 139,116,36,56,51,192,133,219,72,139,92,36,48,15,148,192,72,131,196,32,95,195,204,204,72,139,196,85,83,86,87,65,86,72,141,104,201,72,129,236,224,0,0,0,15,41,112,200,72,139,5,61,207,0,0,72,51,196,72,137,69,239,139,242,76,139,241,186,192,255,0, - 0,185,128,31,0,0,65,139,249,73,139,216,232,4,6,0,0,139,77,95,72,137,68,36,72,72,137,92,36,64,242,15,16,68,36,64,72,139,84,36,72,242,15,17,68,36,64,232,225,254,255,255,242,15,16,117,119,133,192,117,64,131,125,127,2,117,17,139,69,191,131,224,227, - 242,15,17,117,175,131,200,3,137,69,191,68,139,69,95,72,141,68,36,64,72,137,68,36,40,72,141,84,36,72,72,141,69,111,68,139,206,72,141,76,36,80,72,137,68,36,32,232,72,2,0,0,232,235,157,255,255,132,192,116,52,133,255,116,48,72,139,68,36,72,77,139, - 198,242,15,16,68,36,64,139,207,242,15,16,93,111,139,85,103,72,137,68,36,48,242,15,17,68,36,40,242,15,17,116,36,32,232,245,253,255,255,235,28,139,207,232,212,1,0,0,72,139,76,36,72,186,192,255,0,0,232,69,5,0,0,242,15,16,68,36,64,72,139,77,239, - 72,51,204,232,3,115,255,255,15,40,180,36,208,0,0,0,72,129,196,224,0,0,0,65,94,95,94,91,93,195,204,204,204,204,204,204,204,204,204,204,204,204,204,64,83,72,131,236,16,69,51,192,51,201,68,137,5,134,235,0,0,69,141,72,1,65,139,193,15,162,137,4,36, - 184,0,16,0,24,137,76,36,8,35,200,137,92,36,4,137,84,36,12,59,200,117,44,51,201,15,1,208,72,193,226,32,72,11,208,72,137,84,36,32,72,139,68,36,32,68,139,5,70,235,0,0,36,6,60,6,69,15,68,193,68,137,5,55,235,0,0,68,137,5,52,235,0,0,51,192,72,131, - 196,16,91,195,72,139,196,72,131,236,104,15,41,112,232,15,40,241,65,139,209,15,40,216,65,131,232,1,116,42,65,131,248,1,117,105,68,137,64,216,15,87,210,242,15,17,80,208,69,139,200,242,15,17,64,200,199,64,192,33,0,0,0,199,64,184,8,0,0,0,235,45, - 199,68,36,64,1,0,0,0,15,87,192,242,15,17,68,36,56,65,185,2,0,0,0,242,15,17,92,36,48,199,68,36,40,34,0,0,0,199,68,36,32,4,0,0,0,72,139,140,36,144,0,0,0,242,15,17,116,36,120,76,139,68,36,120,232,211,253,255,255,15,40,198,15,40,116,36,80,72,131, - 196,104,195,204,204,204,204,204,204,204,204,204,204,72,131,236,56,72,141,5,69,135,0,0,65,185,27,0,0,0,72,137,68,36,32,232,69,255,255,255,72,131,196,56,195,204,204,204,204,204,204,102,102,15,31,132,0,0,0,0,0,72,131,236,8,15,174,28,36,139,4,36, - 72,131,196,8,195,137,76,36,8,15,174,84,36,8,195,15,174,92,36,8,185,192,255,255,255,33,76,36,8,15,174,84,36,8,195,102,15,46,5,250,134,0,0,115,20,102,15,46,5,248,134,0,0,118,10,242,72,15,45,200,242,72,15,42,193,195,204,204,204,72,131,236,40,131, - 233,1,116,23,131,233,1,116,5,131,249,1,117,24,232,104,161,255,255,199,0,34,0,0,0,235,11,232,91,161,255,255,199,0,33,0,0,0,72,131,196,40,195,72,131,236,72,131,100,36,48,0,72,139,68,36,120,72,137,68,36,40,72,139,68,36,112,72,137,68,36,32,232,6, - 0,0,0,72,131,196,72,195,204,72,139,196,72,137,88,16,72,137,112,24,72,137,120,32,72,137,72,8,85,72,139,236,72,131,236,32,72,139,218,65,139,241,51,210,191,13,0,0,192,137,81,4,72,139,69,16,137,80,8,72,139,69,16,137,80,12,65,246,192,16,116,13,72, - 139,69,16,191,143,0,0,192,131,72,4,1,65,246,192,2,116,13,72,139,69,16,191,147,0,0,192,131,72,4,2,65,246,192,1,116,13,72,139,69,16,191,145,0,0,192,131,72,4,4,65,246,192,4,116,13,72,139,69,16,191,142,0,0,192,131,72,4,8,65,246,192,8,116,13,72,139, - 69,16,191,144,0,0,192,131,72,4,16,72,139,77,16,72,139,3,72,193,232,7,193,224,4,247,208,51,65,8,131,224,16,49,65,8,72,139,77,16,72,139,3,72,193,232,9,193,224,3,247,208,51,65,8,131,224,8,49,65,8,72,139,77,16,72,139,3,72,193,232,10,193,224,2,247, - 208,51,65,8,131,224,4,49,65,8,72,139,77,16,72,139,3,72,193,232,11,3,192,247,208,51,65,8,131,224,2,49,65,8,139,3,72,139,77,16,72,193,232,12,247,208,51,65,8,131,224,1,49,65,8,232,143,2,0,0,72,139,208,168,1,116,8,72,139,77,16,131,73,12,16,246,194, - 4,116,8,72,139,77,16,131,73,12,8,246,194,8,116,8,72,139,69,16,131,72,12,4,246,194,16,116,8,72,139,69,16,131,72,12,2,246,194,32,116,8,72,139,69,16,131,72,12,1,139,3,185,0,96,0,0,72,35,193,116,62,72,61,0,32,0,0,116,38,72,61,0,64,0,0,116,14,72, - 59,193,117,48,72,139,69,16,131,8,3,235,39,72,139,69,16,131,32,254,72,139,69,16,131,8,2,235,23,72,139,69,16,131,32,253,72,139,69,16,131,8,1,235,7,72,139,69,16,131,32,252,72,139,69,16,129,230,255,15,0,0,193,230,5,129,32,31,0,254,255,72,139,69, - 16,9,48,72,139,69,16,72,139,117,56,131,72,32,1,131,125,64,0,116,51,72,139,69,16,186,225,255,255,255,33,80,32,72,139,69,48,139,8,72,139,69,16,137,72,16,72,139,69,16,131,72,96,1,72,139,69,16,33,80,96,72,139,69,16,139,14,137,72,80,235,72,72,139, - 77,16,65,184,227,255,255,255,139,65,32,65,35,192,131,200,2,137,65,32,72,139,69,48,72,139,8,72,139,69,16,72,137,72,16,72,139,69,16,131,72,96,1,72,139,85,16,139,66,96,65,35,192,131,200,2,137,66,96,72,139,69,16,72,139,22,72,137,80,80,232,180,0, - 0,0,51,210,76,141,77,16,139,207,68,141,66,1,255,21,34,163,0,0,72,139,77,16,246,65,8,16,116,5,72,15,186,51,7,246,65,8,8,116,5,72,15,186,51,9,246,65,8,4,116,5,72,15,186,51,10,246,65,8,2,116,5,72,15,186,51,11,246,65,8,1,116,5,72,15,186,51,12,139, - 1,131,224,3,116,48,131,232,1,116,31,131,232,1,116,14,131,248,1,117,40,72,129,11,0,96,0,0,235,31,72,15,186,51,13,72,15,186,43,14,235,19,72,15,186,51,14,72,15,186,43,13,235,7,72,129,35,255,159,255,255,131,125,64,0,116,7,139,65,80,137,6,235,7,72, - 139,65,80,72,137,6,72,139,92,36,56,72,139,116,36,64,72,139,124,36,72,72,131,196,32,93,195,64,83,72,131,236,32,232,69,252,255,255,139,216,131,227,63,232,85,252,255,255,139,195,72,131,196,32,91,195,204,204,204,72,137,92,36,24,72,137,116,36,32, - 87,72,131,236,32,72,139,218,72,139,249,232,22,252,255,255,139,240,137,68,36,56,139,203,247,209,129,201,127,128,255,255,35,200,35,251,11,207,137,76,36,48,128,61,149,210,0,0,0,116,37,246,193,64,116,32,232,249,251,255,255,235,33,198,5,128,210,0, - 0,0,139,76,36,48,131,225,191,232,228,251,255,255,139,116,36,56,235,8,131,225,191,232,214,251,255,255,139,198,72,139,92,36,64,72,139,116,36,72,72,131,196,32,95,195,72,131,236,40,232,171,251,255,255,131,224,63,72,131,196,40,195,204,204,204,64, - 83,72,131,236,32,72,139,217,232,146,251,255,255,131,227,63,11,195,139,200,72,131,196,32,91,233,145,251,255,255,204,204,204,204,204,204,204,102,102,15,31,132,0,0,0,0,0,255,224,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,102,102,15,31,132,0,0,0,0,0,255,37,58,153,0,0,72,137,84,36,16,85,72,131,236,32,72,139,234,72,184,0,0,0,0,0,0,0,0,72,131,196,32,93,195,204,64,85,72,139,234,72,139,1,51,201,129,56,5,0,0,192,15,148,193,139,193,93,195,204,64,85,72,131, - 236,32,72,139,234,138,77,64,72,131,196,32,93,233,106,235,254,255,204,64,85,72,131,236,32,72,139,234,138,77,32,232,88,235,254,255,144,72,131,196,32,93,195,204,64,85,72,131,236,32,72,139,234,72,131,196,32,93,233,65,237,254,255,204,64,85,72,131, - 236,48,72,139,234,72,139,1,139,16,72,137,76,36,40,137,84,36,32,76,141,13,18,244,254,255,76,139,69,112,139,85,104,72,139,77,96,232,54,236,254,255,144,72,131,196,48,93,195,204,64,83,85,87,72,131,236,64,72,139,234,72,137,77,80,72,137,77,72,232, - 98,57,255,255,72,139,141,128,0,0,0,72,137,72,112,72,139,189,152,0,0,0,72,139,95,8,232,71,57,255,255,72,137,88,96,72,139,69,72,72,139,8,72,139,89,56,232,51,57,255,255,72,137,88,104,72,139,77,72,198,68,36,56,1,72,131,100,36,48,0,131,100,36,40, - 0,72,139,133,160,0,0,0,72,137,68,36,32,76,139,207,76,139,133,144,0,0,0,72,139,149,136,0,0,0,72,139,9,232,94,77,255,255,232,241,56,255,255,72,131,96,112,0,199,69,64,1,0,0,0,184,1,0,0,0,72,131,196,64,95,93,91,195,204,64,83,85,87,72,131,236,64, - 72,139,234,72,137,77,80,72,137,77,72,232,191,56,255,255,72,139,141,128,0,0,0,72,137,72,112,72,139,189,152,0,0,0,72,139,95,8,232,164,56,255,255,72,137,88,96,72,139,69,72,72,139,8,72,139,89,56,232,144,56,255,255,72,137,88,104,232,135,56,255,255, - 139,141,184,0,0,0,137,72,120,72,139,77,72,198,68,36,56,1,72,131,100,36,48,0,131,100,36,40,0,72,139,133,160,0,0,0,72,137,68,36,32,76,139,207,76,139,133,144,0,0,0,72,139,149,136,0,0,0,72,139,9,232,181,76,255,255,232,64,56,255,255,72,131,96,112, - 0,199,69,64,1,0,0,0,184,1,0,0,0,72,131,196,64,95,93,91,195,204,64,83,85,72,131,236,40,72,139,234,72,137,77,56,72,137,77,48,128,125,88,0,116,108,72,139,69,48,72,139,8,72,137,77,40,72,139,69,40,129,56,99,115,109,224,117,85,72,139,69,40,131,120, - 24,4,117,75,72,139,69,40,129,120,32,32,5,147,25,116,26,72,139,69,40,129,120,32,33,5,147,25,116,13,72,139,69,40,129,120,32,34,5,147,25,117,36,232,193,55,255,255,72,139,77,40,72,137,72,32,72,139,69,48,72,139,88,8,232,172,55,255,255,72,137,88,40, - 232,115,49,255,255,144,199,69,32,0,0,0,0,139,69,32,72,131,196,40,93,91,195,204,64,85,72,131,236,32,72,139,234,51,201,72,131,196,32,93,233,63,119,255,255,204,64,85,72,131,236,32,72,139,234,72,139,69,72,139,8,72,131,196,32,93,233,37,119,255,255, - 204,64,85,72,131,236,32,72,139,234,72,137,77,40,72,139,1,139,8,137,77,36,51,192,129,249,99,115,109,224,15,148,192,137,69,32,139,69,32,72,131,196,32,93,195,204,204,204,204,64,85,72,131,236,32,72,139,234,72,139,1,51,201,129,56,5,0,0,192,15,148, - 193,139,193,72,131,196,32,93,195,204,64,85,72,131,236,64,72,139,234,232,2,55,255,255,199,64,120,254,255,255,255,72,131,196,64,93,195,204,64,85,72,131,236,32,72,139,234,72,137,77,88,76,141,69,32,72,139,149,184,0,0,0,232,15,73,255,255,144,72,131, - 196,32,93,195,204,64,83,85,72,131,236,40,72,139,234,72,139,77,56,232,0,8,255,255,131,125,32,0,117,72,72,139,157,184,0,0,0,129,59,99,115,109,224,117,57,131,123,24,4,117,51,129,123,32,32,5,147,25,116,18,129,123,32,33,5,147,25,116,9,129,123,32, - 34,5,147,25,117,24,72,139,75,40,232,141,10,255,255,133,192,116,11,178,1,72,139,203,232,255,9,255,255,144,232,105,54,255,255,72,139,141,192,0,0,0,72,137,72,32,232,89,54,255,255,72,139,77,64,72,137,72,40,72,131,196,40,93,91,195,204,64,85,72,131, - 236,32,72,139,234,72,137,141,128,0,0,0,76,141,77,32,68,139,133,232,0,0,0,72,139,149,248,0,0,0,232,226,72,255,255,144,72,131,196,32,93,195,204,64,83,85,72,131,236,40,72,139,234,72,139,77,72,232,75,7,255,255,131,125,32,0,117,72,72,139,157,248, - 0,0,0,129,59,99,115,109,224,117,57,131,123,24,4,117,51,129,123,32,32,5,147,25,116,18,129,123,32,33,5,147,25,116,9,129,123,32,34,5,147,25,117,24,72,139,75,40,232,216,9,255,255,133,192,116,11,178,1,72,139,203,232,74,9,255,255,144,232,180,53,255, - 255,72,139,77,48,72,137,72,32,232,167,53,255,255,72,139,77,56,72,137,72,40,232,154,53,255,255,139,141,224,0,0,0,137,72,120,72,131,196,40,93,91,195,204,64,85,72,131,236,32,72,139,234,232,223,9,255,255,144,72,131,196,32,93,195,204,64,85,72,131, - 236,32,72,139,234,232,101,53,255,255,131,120,48,0,126,8,232,90,53,255,255,255,72,48,72,131,196,32,93,195,204,64,85,72,131,236,48,72,139,234,232,166,9,255,255,144,72,131,196,48,93,195,204,64,85,72,131,236,48,72,139,234,232,44,53,255,255,131,120, - 48,0,126,8,232,33,53,255,255,255,72,48,72,131,196,48,93,195,204,64,85,72,131,236,32,72,139,234,185,7,0,0,0,72,131,196,32,93,233,195,116,255,255,204,64,85,72,131,236,32,72,139,234,72,139,69,104,139,8,72,131,196,32,93,233,169,116,255,255,204,64, - 85,72,131,236,32,72,139,234,185,5,0,0,0,72,131,196,32,93,233,144,116,255,255,204,64,85,72,131,236,32,72,139,234,128,125,112,0,116,11,185,3,0,0,0,232,118,116,255,255,144,72,131,196,32,93,195,204,64,85,72,131,236,32,72,139,234,72,139,77,72,72, - 139,9,72,131,196,32,93,233,136,149,255,255,204,64,85,72,131,236,32,72,139,234,72,139,133,152,0,0,0,139,8,72,131,196,32,93,233,55,116,255,255,204,64,85,72,131,236,32,72,139,234,72,139,69,88,139,8,72,131,196,32,93,233,29,116,255,255,204,64,85, - 72,131,236,32,72,139,234,185,4,0,0,0,72,131,196,32,93,233,4,116,255,255,204,64,85,72,131,236,32,72,139,234,72,139,69,72,139,8,72,131,196,32,93,233,238,187,255,255,204,64,85,72,131,236,48,72,139,234,139,77,96,72,131,196,48,93,233,215,187,255, - 255,204,64,85,72,131,236,32,72,139,234,185,8,0,0,0,72,131,196,32,93,233,186,115,255,255,204,64,85,72,131,236,48,72,139,234,72,139,77,64,72,131,196,48,93,233,214,148,255,255,204,64,85,72,131,236,32,72,139,234,72,139,1,129,56,5,0,0,192,116,12, - 129,56,29,0,0,192,116,4,51,192,235,5,184,1,0,0,0,72,131,196,32,93,195,204,72,141,5,138,204,0,0,233,84,0,0,0,72,141,5,134,204,0,0,233,72,0,0,0,72,141,5,130,204,0,0,233,60,0,0,0,72,141,5,126,204,0,0,233,48,0,0,0,72,141,5,122,204,0,0,233,36,0,0, - 0,72,141,5,118,204,0,0,233,24,0,0,0,72,141,5,114,204,0,0,233,12,0,0,0,72,141,5,110,204,0,0,233,0,0,0,0,81,82,65,80,65,81,72,131,236,72,102,15,127,4,36,102,15,127,76,36,16,102,15,127,84,36,32,102,15,127,92,36,48,72,139,208,72,141,13,238,146,0, - 0,232,21,243,254,255,102,15,111,4,36,102,15,111,76,36,16,102,15,111,84,36,32,102,15,111,92,36,48,72,131,196,72,65,89,65,88,90,89,255,224,72,141,5,31,204,0,0,233,12,0,0,0,72,141,5,27,204,0,0,233,0,0,0,0,81,82,65,80,65,81,72,131,236,72,102,15, - 127,4,36,102,15,127,76,36,16,102,15,127,84,36,32,102,15,127,92,36,48,72,139,208,72,141,13,163,146,0,0,232,170,242,254,255,102,15,111,4,36,102,15,111,76,36,16,102,15,111,84,36,32,102,15,111,92,36,48,72,131,196,72,65,89,65,88,90,89,255,224,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204, - 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,97,0,112,0,105,0,45,0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,99,0,111,0,114,0,101,0,45,0,115,0,121,0,110,0,99,0,104,0,45,0,108,0,49,0,45,0,50,0,45,0,48,0,46,0,100,0,108,0,108,0,0,0,0,0,0,0,0,0,107,0,101,0,114,0,110,0,101,0,108,0,51,0,50,0, - 46,0,100,0,108,0,108,0,0,0,0,0,0,0,0,0,83,108,101,101,112,67,111,110,100,105,116,105,111,110,86,97,114,105,97,98,108,101,67,83,0,0,0,0,0,0,0,0,87,97,107,101,65,108,108,67,111,110,100,105,116,105,111,110,86,97,114,105,97,98,108,101,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,192,231,1,128,1,0,0,0,176,71,0,128,1,0,0,0,144,71,0,128,1,0,0,0,85,110,107,110,111,119,110,32,101,120,99,101,112,116,105,111,110,0,0,0,0,0,0,0,56,232,1,128, - 1,0,0,0,176,71,0,128,1,0,0,0,144,71,0,128,1,0,0,0,98,97,100,32,97,108,108,111,99,97,116,105,111,110,0,0,184,232,1,128,1,0,0,0,176,71,0,128,1,0,0,0,144,71,0,128,1,0,0,0,98,97,100,32,97,114,114,97,121,32,110,101,119,32,108,101,110,103,116,104, - 0,0,0,0,64,233,1,128,1,0,0,0,208,74,0,128,1,0,0,0,0,0,0,0,0,0,0,0,75,0,69,0,82,0,78,0,69,0,76,0,51,0,50,0,46,0,68,0,76,0,76,0,0,0,0,0,0,0,0,0,65,99,113,117,105,114,101,83,82,87,76,111,99,107,69,120,99,108,117,115,105,118,101,0,82,101,108,101, - 97,115,101,83,82,87,76,111,99,107,69,120,99,108,117,115,105,118,101,0,64,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,40,32,2,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,241,1,128,1,0,0,0,48,241,1,128,1,0,0,0,232,239,1,128,1,0,0,0,79,0,0,0,0,0,0,0,0,5,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,241,1,128,1,0,0,0,64,241,1,128,1,0,0,0,72,241,1,128,1,0,0,0,80,241,1, - 128,1,0,0,0,88,241,1,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,254,255,253,255,254,255,252,255,254,255,253,255,254,255,251,25,18,25,11,25,18,25,4,25,18,25,11,25,18,25,0,41,0,0,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0, - 0,32,5,147,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,41,0,0,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,32,5,147,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,101,0,128,1,0,0,0,32,109,0,128,1,0,0,0,0,0,0,0,0,0,0,0,192,109,0,128,1,0,0,0,0,0,0,0,0,0,0,0,144,204,0,128,1,0,0,0,192,204,0,128,1,0,0,0,160,109,0, - 128,1,0,0,0,176,109,0,128,1,0,0,0,64,209,0,128,1,0,0,0,144,209,0,128,1,0,0,0,0,210,0,128,1,0,0,0,32,210,0,128,1,0,0,0,0,0,0,0,0,0,0,0,0,110,0,128,1,0,0,0,48,210,0,128,1,0,0,0,112,210,0,128,1,0,0,0,96,217,0,128,1,0,0,0,160,217,0,128,1,0,0,0,224, - 219,0,128,1,0,0,0,16,220,0,128,1,0,0,0,48,220,0,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,110,0,128,1,0,0,0,0,0,0,0,0,0,0,0,80,110,0,128,1,0,0,0,0,0,0,0,0,0,0,0,16,110,0,128,1,0,0,0,128,109,0,128,1,0,0,0,144,109,0,128,1,0,0,0,64,109,0, - 128,1,0,0,0,112,109,0,128,1,0,0,0,109,0,115,0,99,0,111,0,114,0,101,0,101,0,46,0,100,0,108,0,108,0,0,0,67,111,114,69,120,105,116,80,114,111,99,101,115,115,0,0,34,5,147,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,48,4,2,0,32,0,0,0,0,0,0,0,5,0,0, - 0,34,5,147,25,1,0,0,0,76,4,2,0,0,0,0,0,0,0,0,0,1,0,0,0,88,4,2,0,48,0,0,0,0,0,0,0,5,0,0,0,34,5,147,25,1,0,0,0,76,4,2,0,0,0,0,0,0,0,0,0,1,0,0,0,240,4,2,0,40,0,0,0,0,0,0,0,1,0,0,0,34,5,147,25,1,0,0,0,76,4,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32, - 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,5,0,0,192,11,0,0,0,0,0,0,0,0,0,0,0,29,0,0,192,4,0,0,0,0,0,0,0,0,0,0,0,150,0,0,192,4,0,0,0,0,0,0,0,0,0,0,0,141,0,0,192,8,0,0,0,0,0,0,0,0,0,0,0,142,0,0,192,8,0,0,0,0,0,0,0,0,0,0,0,143,0,0,192,8,0,0,0,0,0,0, - 0,0,0,0,0,144,0,0,192,8,0,0,0,0,0,0,0,0,0,0,0,145,0,0,192,8,0,0,0,0,0,0,0,0,0,0,0,146,0,0,192,8,0,0,0,0,0,0,0,0,0,0,0,147,0,0,192,8,0,0,0,0,0,0,0,0,0,0,0,180,2,0,192,8,0,0,0,0,0,0,0,0,0,0,0,181,2,0,192,8,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0, - 0,3,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,184,233,1,128,1,0,0,0,176,71,0,128,1,0,0,0,144,71,0,128,1,0,0,0,98,97,100,32,101,120,99,101,112,116,105,111,110,0,0,0,80,110,1,128,1,0,0,0,8,0,0,0,0,0,0,0,96,110,1,128,1,0,0,0,7,0,0,0,0,0,0,0,104,110,1,128,1, - 0,0,0,8,0,0,0,0,0,0,0,120,110,1,128,1,0,0,0,9,0,0,0,0,0,0,0,136,110,1,128,1,0,0,0,10,0,0,0,0,0,0,0,152,110,1,128,1,0,0,0,10,0,0,0,0,0,0,0,168,110,1,128,1,0,0,0,12,0,0,0,0,0,0,0,184,110,1,128,1,0,0,0,9,0,0,0,0,0,0,0,196,110,1,128,1,0,0,0,6,0, - 0,0,0,0,0,0,208,110,1,128,1,0,0,0,9,0,0,0,0,0,0,0,224,110,1,128,1,0,0,0,9,0,0,0,0,0,0,0,240,110,1,128,1,0,0,0,9,0,0,0,0,0,0,0,0,111,1,128,1,0,0,0,7,0,0,0,0,0,0,0,8,111,1,128,1,0,0,0,10,0,0,0,0,0,0,0,24,111,1,128,1,0,0,0,11,0,0,0,0,0,0,0,40,111, - 1,128,1,0,0,0,9,0,0,0,0,0,0,0,50,111,1,128,1,0,0,0,0,0,0,0,0,0,0,0,52,111,1,128,1,0,0,0,4,0,0,0,0,0,0,0,64,111,1,128,1,0,0,0,7,0,0,0,0,0,0,0,72,111,1,128,1,0,0,0,1,0,0,0,0,0,0,0,76,111,1,128,1,0,0,0,2,0,0,0,0,0,0,0,80,111,1,128,1,0,0,0,2,0,0, - 0,0,0,0,0,84,111,1,128,1,0,0,0,1,0,0,0,0,0,0,0,88,111,1,128,1,0,0,0,2,0,0,0,0,0,0,0,92,111,1,128,1,0,0,0,2,0,0,0,0,0,0,0,96,111,1,128,1,0,0,0,2,0,0,0,0,0,0,0,104,111,1,128,1,0,0,0,8,0,0,0,0,0,0,0,116,111,1,128,1,0,0,0,2,0,0,0,0,0,0,0,120,111, - 1,128,1,0,0,0,1,0,0,0,0,0,0,0,124,111,1,128,1,0,0,0,2,0,0,0,0,0,0,0,128,111,1,128,1,0,0,0,2,0,0,0,0,0,0,0,132,111,1,128,1,0,0,0,1,0,0,0,0,0,0,0,136,111,1,128,1,0,0,0,1,0,0,0,0,0,0,0,140,111,1,128,1,0,0,0,1,0,0,0,0,0,0,0,144,111,1,128,1,0,0,0, - 3,0,0,0,0,0,0,0,148,111,1,128,1,0,0,0,1,0,0,0,0,0,0,0,152,111,1,128,1,0,0,0,1,0,0,0,0,0,0,0,156,111,1,128,1,0,0,0,1,0,0,0,0,0,0,0,160,111,1,128,1,0,0,0,2,0,0,0,0,0,0,0,164,111,1,128,1,0,0,0,1,0,0,0,0,0,0,0,168,111,1,128,1,0,0,0,2,0,0,0,0,0,0, - 0,172,111,1,128,1,0,0,0,1,0,0,0,0,0,0,0,176,111,1,128,1,0,0,0,2,0,0,0,0,0,0,0,180,111,1,128,1,0,0,0,1,0,0,0,0,0,0,0,184,111,1,128,1,0,0,0,1,0,0,0,0,0,0,0,188,111,1,128,1,0,0,0,1,0,0,0,0,0,0,0,192,111,1,128,1,0,0,0,2,0,0,0,0,0,0,0,196,111,1,128, - 1,0,0,0,2,0,0,0,0,0,0,0,200,111,1,128,1,0,0,0,2,0,0,0,0,0,0,0,204,111,1,128,1,0,0,0,2,0,0,0,0,0,0,0,208,111,1,128,1,0,0,0,2,0,0,0,0,0,0,0,212,111,1,128,1,0,0,0,2,0,0,0,0,0,0,0,216,111,1,128,1,0,0,0,2,0,0,0,0,0,0,0,220,111,1,128,1,0,0,0,3,0,0, - 0,0,0,0,0,224,111,1,128,1,0,0,0,3,0,0,0,0,0,0,0,228,111,1,128,1,0,0,0,2,0,0,0,0,0,0,0,232,111,1,128,1,0,0,0,2,0,0,0,0,0,0,0,236,111,1,128,1,0,0,0,2,0,0,0,0,0,0,0,240,111,1,128,1,0,0,0,9,0,0,0,0,0,0,0,0,112,1,128,1,0,0,0,9,0,0,0,0,0,0,0,16,112, - 1,128,1,0,0,0,7,0,0,0,0,0,0,0,24,112,1,128,1,0,0,0,8,0,0,0,0,0,0,0,40,112,1,128,1,0,0,0,20,0,0,0,0,0,0,0,64,112,1,128,1,0,0,0,8,0,0,0,0,0,0,0,80,112,1,128,1,0,0,0,18,0,0,0,0,0,0,0,104,112,1,128,1,0,0,0,28,0,0,0,0,0,0,0,136,112,1,128,1,0,0,0, - 29,0,0,0,0,0,0,0,168,112,1,128,1,0,0,0,28,0,0,0,0,0,0,0,200,112,1,128,1,0,0,0,29,0,0,0,0,0,0,0,232,112,1,128,1,0,0,0,28,0,0,0,0,0,0,0,8,113,1,128,1,0,0,0,35,0,0,0,0,0,0,0,48,113,1,128,1,0,0,0,26,0,0,0,0,0,0,0,80,113,1,128,1,0,0,0,32,0,0,0,0, - 0,0,0,120,113,1,128,1,0,0,0,31,0,0,0,0,0,0,0,152,113,1,128,1,0,0,0,38,0,0,0,0,0,0,0,192,113,1,128,1,0,0,0,26,0,0,0,0,0,0,0,224,113,1,128,1,0,0,0,15,0,0,0,0,0,0,0,240,113,1,128,1,0,0,0,3,0,0,0,0,0,0,0,244,113,1,128,1,0,0,0,5,0,0,0,0,0,0,0,0,114, - 1,128,1,0,0,0,15,0,0,0,0,0,0,0,16,114,1,128,1,0,0,0,35,0,0,0,0,0,0,0,52,114,1,128,1,0,0,0,6,0,0,0,0,0,0,0,64,114,1,128,1,0,0,0,9,0,0,0,0,0,0,0,80,114,1,128,1,0,0,0,14,0,0,0,0,0,0,0,96,114,1,128,1,0,0,0,26,0,0,0,0,0,0,0,128,114,1,128,1,0,0,0, - 28,0,0,0,0,0,0,0,160,114,1,128,1,0,0,0,37,0,0,0,0,0,0,0,200,114,1,128,1,0,0,0,36,0,0,0,0,0,0,0,240,114,1,128,1,0,0,0,37,0,0,0,0,0,0,0,24,115,1,128,1,0,0,0,43,0,0,0,0,0,0,0,72,115,1,128,1,0,0,0,26,0,0,0,0,0,0,0,104,115,1,128,1,0,0,0,32,0,0,0, - 0,0,0,0,144,115,1,128,1,0,0,0,34,0,0,0,0,0,0,0,184,115,1,128,1,0,0,0,40,0,0,0,0,0,0,0,232,115,1,128,1,0,0,0,42,0,0,0,0,0,0,0,24,116,1,128,1,0,0,0,27,0,0,0,0,0,0,0,56,116,1,128,1,0,0,0,12,0,0,0,0,0,0,0,72,116,1,128,1,0,0,0,17,0,0,0,0,0,0,0,96, - 116,1,128,1,0,0,0,11,0,0,0,0,0,0,0,50,111,1,128,1,0,0,0,0,0,0,0,0,0,0,0,112,116,1,128,1,0,0,0,17,0,0,0,0,0,0,0,136,116,1,128,1,0,0,0,27,0,0,0,0,0,0,0,168,116,1,128,1,0,0,0,18,0,0,0,0,0,0,0,192,116,1,128,1,0,0,0,28,0,0,0,0,0,0,0,224,116,1,128, - 1,0,0,0,25,0,0,0,0,0,0,0,50,111,1,128,1,0,0,0,0,0,0,0,0,0,0,0,120,111,1,128,1,0,0,0,1,0,0,0,0,0,0,0,140,111,1,128,1,0,0,0,1,0,0,0,0,0,0,0,192,111,1,128,1,0,0,0,2,0,0,0,0,0,0,0,184,111,1,128,1,0,0,0,1,0,0,0,0,0,0,0,152,111,1,128,1,0,0,0,1,0,0, - 0,0,0,0,0,64,112,1,128,1,0,0,0,8,0,0,0,0,0,0,0,0,117,1,128,1,0,0,0,21,0,0,0,0,0,0,0,95,95,98,97,115,101,100,40,0,0,0,0,0,0,0,0,95,95,99,100,101,99,108,0,95,95,112,97,115,99,97,108,0,0,0,0,0,0,0,0,95,95,115,116,100,99,97,108,108,0,0,0,0,0,0,0, - 95,95,116,104,105,115,99,97,108,108,0,0,0,0,0,0,95,95,102,97,115,116,99,97,108,108,0,0,0,0,0,0,95,95,118,101,99,116,111,114,99,97,108,108,0,0,0,0,95,95,99,108,114,99,97,108,108,0,0,0,95,95,101,97,98,105,0,0,0,0,0,0,95,95,115,119,105,102,116, - 95,49,0,0,0,0,0,0,0,95,95,115,119,105,102,116,95,50,0,0,0,0,0,0,0,95,95,115,119,105,102,116,95,51,0,0,0,0,0,0,0,95,95,112,116,114,54,52,0,95,95,114,101,115,116,114,105,99,116,0,0,0,0,0,0,95,95,117,110,97,108,105,103,110,101,100,0,0,0,0,0,114, - 101,115,116,114,105,99,116,40,0,0,0,32,110,101,119,0,0,0,0,0,0,0,0,32,100,101,108,101,116,101,0,61,0,0,0,62,62,0,0,60,60,0,0,33,0,0,0,61,61,0,0,33,61,0,0,91,93,0,0,0,0,0,0,111,112,101,114,97,116,111,114,0,0,0,0,45,62,0,0,42,0,0,0,43,43,0,0,45, - 45,0,0,45,0,0,0,43,0,0,0,38,0,0,0,45,62,42,0,47,0,0,0,37,0,0,0,60,0,0,0,60,61,0,0,62,0,0,0,62,61,0,0,44,0,0,0,40,41,0,0,126,0,0,0,94,0,0,0,124,0,0,0,38,38,0,0,124,124,0,0,42,61,0,0,43,61,0,0,45,61,0,0,47,61,0,0,37,61,0,0,62,62,61,0,60,60,61, - 0,38,61,0,0,124,61,0,0,94,61,0,0,96,118,102,116,97,98,108,101,39,0,0,0,0,0,0,0,96,118,98,116,97,98,108,101,39,0,0,0,0,0,0,0,96,118,99,97,108,108,39,0,96,116,121,112,101,111,102,39,0,0,0,0,0,0,0,0,96,108,111,99,97,108,32,115,116,97,116,105,99, - 32,103,117,97,114,100,39,0,0,0,0,96,115,116,114,105,110,103,39,0,0,0,0,0,0,0,0,96,118,98,97,115,101,32,100,101,115,116,114,117,99,116,111,114,39,0,0,0,0,0,0,96,118,101,99,116,111,114,32,100,101,108,101,116,105,110,103,32,100,101,115,116,114, - 117,99,116,111,114,39,0,0,0,0,96,100,101,102,97,117,108,116,32,99,111,110,115,116,114,117,99,116,111,114,32,99,108,111,115,117,114,101,39,0,0,0,96,115,99,97,108,97,114,32,100,101,108,101,116,105,110,103,32,100,101,115,116,114,117,99,116,111, - 114,39,0,0,0,0,96,118,101,99,116,111,114,32,99,111,110,115,116,114,117,99,116,111,114,32,105,116,101,114,97,116,111,114,39,0,0,0,96,118,101,99,116,111,114,32,100,101,115,116,114,117,99,116,111,114,32,105,116,101,114,97,116,111,114,39,0,0,0,0, - 96,118,101,99,116,111,114,32,118,98,97,115,101,32,99,111,110,115,116,114,117,99,116,111,114,32,105,116,101,114,97,116,111,114,39,0,0,0,0,0,96,118,105,114,116,117,97,108,32,100,105,115,112,108,97,99,101,109,101,110,116,32,109,97,112,39,0,0,0, - 0,0,0,96,101,104,32,118,101,99,116,111,114,32,99,111,110,115,116,114,117,99,116,111,114,32,105,116,101,114,97,116,111,114,39,0,0,0,0,0,0,0,0,96,101,104,32,118,101,99,116,111,114,32,100,101,115,116,114,117,99,116,111,114,32,105,116,101,114,97, - 116,111,114,39,0,96,101,104,32,118,101,99,116,111,114,32,118,98,97,115,101,32,99,111,110,115,116,114,117,99,116,111,114,32,105,116,101,114,97,116,111,114,39,0,0,96,99,111,112,121,32,99,111,110,115,116,114,117,99,116,111,114,32,99,108,111,115, - 117,114,101,39,0,0,0,0,0,0,96,117,100,116,32,114,101,116,117,114,110,105,110,103,39,0,96,69,72,0,96,82,84,84,73,0,0,0,0,0,0,0,96,108,111,99,97,108,32,118,102,116,97,98,108,101,39,0,96,108,111,99,97,108,32,118,102,116,97,98,108,101,32,99,111, - 110,115,116,114,117,99,116,111,114,32,99,108,111,115,117,114,101,39,0,32,110,101,119,91,93,0,0,0,0,0,0,32,100,101,108,101,116,101,91,93,0,0,0,0,0,0,0,96,111,109,110,105,32,99,97,108,108,115,105,103,39,0,0,96,112,108,97,99,101,109,101,110,116, - 32,100,101,108,101,116,101,32,99,108,111,115,117,114,101,39,0,0,0,0,0,0,96,112,108,97,99,101,109,101,110,116,32,100,101,108,101,116,101,91,93,32,99,108,111,115,117,114,101,39,0,0,0,0,96,109,97,110,97,103,101,100,32,118,101,99,116,111,114,32, - 99,111,110,115,116,114,117,99,116,111,114,32,105,116,101,114,97,116,111,114,39,0,0,0,96,109,97,110,97,103,101,100,32,118,101,99,116,111,114,32,100,101,115,116,114,117,99,116,111,114,32,105,116,101,114,97,116,111,114,39,0,0,0,0,96,101,104,32, - 118,101,99,116,111,114,32,99,111,112,121,32,99,111,110,115,116,114,117,99,116,111,114,32,105,116,101,114,97,116,111,114,39,0,0,0,96,101,104,32,118,101,99,116,111,114,32,118,98,97,115,101,32,99,111,112,121,32,99,111,110,115,116,114,117,99,116, - 111,114,32,105,116,101,114,97,116,111,114,39,0,0,0,0,0,96,100,121,110,97,109,105,99,32,105,110,105,116,105,97,108,105,122,101,114,32,102,111,114,32,39,0,0,0,0,0,0,96,100,121,110,97,109,105,99,32,97,116,101,120,105,116,32,100,101,115,116,114, - 117,99,116,111,114,32,102,111,114,32,39,0,0,0,0,0,0,0,0,96,118,101,99,116,111,114,32,99,111,112,121,32,99,111,110,115,116,114,117,99,116,111,114,32,105,116,101,114,97,116,111,114,39,0,0,0,0,0,0,96,118,101,99,116,111,114,32,118,98,97,115,101, - 32,99,111,112,121,32,99,111,110,115,116,114,117,99,116,111,114,32,105,116,101,114,97,116,111,114,39,0,0,0,0,0,0,0,0,96,109,97,110,97,103,101,100,32,118,101,99,116,111,114,32,99,111,112,121,32,99,111,110,115,116,114,117,99,116,111,114,32,105, - 116,101,114,97,116,111,114,39,0,0,0,0,0,0,96,108,111,99,97,108,32,115,116,97,116,105,99,32,116,104,114,101,97,100,32,103,117,97,114,100,39,0,0,0,0,0,111,112,101,114,97,116,111,114,32,34,34,32,0,0,0,0,111,112,101,114,97,116,111,114,32,99,111, - 95,97,119,97,105,116,0,0,0,0,0,0,0,111,112,101,114,97,116,111,114,60,61,62,0,0,0,0,0,32,84,121,112,101,32,68,101,115,99,114,105,112,116,111,114,39,0,0,0,0,0,0,0,32,66,97,115,101,32,67,108,97,115,115,32,68,101,115,99,114,105,112,116,111,114,32, - 97,116,32,40,0,0,0,0,0,32,66,97,115,101,32,67,108,97,115,115,32,65,114,114,97,121,39,0,0,0,0,0,0,32,67,108,97,115,115,32,72,105,101,114,97,114,99,104,121,32,68,101,115,99,114,105,112,116,111,114,39,0,0,0,0,32,67,111,109,112,108,101,116,101,32, - 79,98,106,101,99,116,32,76,111,99,97,116,111,114,39,0,0,0,0,0,0,0,96,97,110,111,110,121,109,111,117,115,32,110,97,109,101,115,112,97,99,101,39,0,0,0,0,0,0,0,0,0,0,0,208,117,1,128,1,0,0,0,16,118,1,128,1,0,0,0,72,118,1,128,1,0,0,0,128,118,1,128, - 1,0,0,0,208,118,1,128,1,0,0,0,48,119,1,128,1,0,0,0,128,119,1,128,1,0,0,0,192,119,1,128,1,0,0,0,0,120,1,128,1,0,0,0,64,120,1,128,1,0,0,0,128,120,1,128,1,0,0,0,192,120,1,128,1,0,0,0,16,121,1,128,1,0,0,0,112,121,1,128,1,0,0,0,192,121,1,128,1,0, - 0,0,16,122,1,128,1,0,0,0,40,122,1,128,1,0,0,0,64,122,1,128,1,0,0,0,88,122,1,128,1,0,0,0,112,122,1,128,1,0,0,0,184,122,1,128,1,0,0,0,0,0,0,0,0,0,0,0,97,0,112,0,105,0,45,0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,99,0,111,0,114,0,101,0,45,0,100, - 0,97,0,116,0,101,0,116,0,105,0,109,0,101,0,45,0,108,0,49,0,45,0,49,0,45,0,49,0,0,0,97,0,112,0,105,0,45,0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,99,0,111,0,114,0,101,0,45,0,102,0,105,0,108,0,101,0,45,0,108,0,49,0,45,0,50,0,45,0,52,0,0,0,97,0, - 112,0,105,0,45,0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,99,0,111,0,114,0,101,0,45,0,102,0,105,0,108,0,101,0,45,0,108,0,49,0,45,0,50,0,45,0,50,0,0,0,97,0,112,0,105,0,45,0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,99,0,111,0,114,0,101,0,45,0,108, - 0,111,0,99,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,45,0,108,0,49,0,45,0,50,0,45,0,49,0,0,0,0,0,0,0,0,0,0,0,97,0,112,0,105,0,45,0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,99,0,111,0,114,0,101,0,45,0,108,0,111,0,99,0,97,0,108,0,105, - 0,122,0,97,0,116,0,105,0,111,0,110,0,45,0,111,0,98,0,115,0,111,0,108,0,101,0,116,0,101,0,45,0,108,0,49,0,45,0,50,0,45,0,48,0,0,0,0,0,0,0,0,0,97,0,112,0,105,0,45,0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,99,0,111,0,114,0,101,0,45,0,112,0,114, - 0,111,0,99,0,101,0,115,0,115,0,116,0,104,0,114,0,101,0,97,0,100,0,115,0,45,0,108,0,49,0,45,0,49,0,45,0,50,0,0,0,0,0,0,0,97,0,112,0,105,0,45,0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,99,0,111,0,114,0,101,0,45,0,115,0,116,0,114,0,105,0,110,0,103, - 0,45,0,108,0,49,0,45,0,49,0,45,0,48,0,0,0,0,0,0,0,97,0,112,0,105,0,45,0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,99,0,111,0,114,0,101,0,45,0,115,0,121,0,110,0,99,0,104,0,45,0,108,0,49,0,45,0,50,0,45,0,48,0,0,0,0,0,0,0,0,0,97,0,112,0,105,0,45, - 0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,99,0,111,0,114,0,101,0,45,0,115,0,121,0,115,0,105,0,110,0,102,0,111,0,45,0,108,0,49,0,45,0,50,0,45,0,49,0,0,0,0,0,97,0,112,0,105,0,45,0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,99,0,111,0,114,0,101,0, - 45,0,119,0,105,0,110,0,114,0,116,0,45,0,108,0,49,0,45,0,49,0,45,0,48,0,0,0,0,0,0,0,0,0,97,0,112,0,105,0,45,0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,99,0,111,0,114,0,101,0,45,0,120,0,115,0,116,0,97,0,116,0,101,0,45,0,108,0,50,0,45,0,49,0,45, - 0,48,0,0,0,0,0,0,0,97,0,112,0,105,0,45,0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,114,0,116,0,99,0,111,0,114,0,101,0,45,0,110,0,116,0,117,0,115,0,101,0,114,0,45,0,119,0,105,0,110,0,100,0,111,0,119,0,45,0,108,0,49,0,45,0,49,0,45,0,48,0,0,0,0,0, - 97,0,112,0,105,0,45,0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,115,0,101,0,99,0,117,0,114,0,105,0,116,0,121,0,45,0,115,0,121,0,115,0,116,0,101,0,109,0,102,0,117,0,110,0,99,0,116,0,105,0,111,0,110,0,115,0,45,0,108,0,49,0,45,0,49,0,45,0,48,0,0, - 0,0,0,0,0,0,0,0,0,0,0,101,0,120,0,116,0,45,0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,110,0,116,0,117,0,115,0,101,0,114,0,45,0,100,0,105,0,97,0,108,0,111,0,103,0,98,0,111,0,120,0,45,0,108,0,49,0,45,0,49,0,45,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,101, - 0,120,0,116,0,45,0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,110,0,116,0,117,0,115,0,101,0,114,0,45,0,119,0,105,0,110,0,100,0,111,0,119,0,115,0,116,0,97,0,116,0,105,0,111,0,110,0,45,0,108,0,49,0,45,0,49,0,45,0,48,0,0,0,0,0,97,0,100,0,118,0,97, - 0,112,0,105,0,51,0,50,0,0,0,0,0,0,0,0,0,107,0,101,0,114,0,110,0,101,0,108,0,51,0,50,0,0,0,0,0,0,0,0,0,107,0,101,0,114,0,110,0,101,0,108,0,98,0,97,0,115,0,101,0,0,0,0,0,110,0,116,0,100,0,108,0,108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,112,0,105, - 0,45,0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,97,0,112,0,112,0,109,0,111,0,100,0,101,0,108,0,45,0,114,0,117,0,110,0,116,0,105,0,109,0,101,0,45,0,108,0,49,0,45,0,49,0,45,0,50,0,0,0,0,0,117,0,115,0,101,0,114,0,51,0,50,0,0,0,0,0,97,0,112,0,105, - 0,45,0,109,0,115,0,45,0,0,0,101,0,120,0,116,0,45,0,109,0,115,0,45,0,0,0,16,0,0,0,0,0,0,0,65,114,101,70,105,108,101,65,112,105,115,65,78,83,73,0,7,0,0,0,16,0,0,0,73,110,105,116,105,97,108,105,122,101,67,114,105,116,105,99,97,108,83,101,99,116, - 105,111,110,69,120,0,0,0,0,0,3,0,0,0,16,0,0,0,76,67,77,97,112,83,116,114,105,110,103,69,120,0,0,0,3,0,0,0,16,0,0,0,76,111,99,97,108,101,78,97,109,101,84,111,76,67,73,68,0,0,0,0,19,0,0,0,65,112,112,80,111,108,105,99,121,71,101,116,80,114,111, - 99,101,115,115,84,101,114,109,105,110,97,116,105,111,110,77,101,116,104,111,100,0,0,0,0,168,123,1,128,1,0,0,0,184,123,1,128,1,0,0,0,200,123,1,128,1,0,0,0,216,123,1,128,1,0,0,0,106,0,97,0,45,0,74,0,80,0,0,0,0,0,0,0,122,0,104,0,45,0,67,0,78,0, - 0,0,0,0,0,0,107,0,111,0,45,0,75,0,82,0,0,0,0,0,0,0,122,0,104,0,45,0,84,0,87,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,126,1,128,1,0,0,0,180,126,1,128,1,0,0,0,184,126,1,128,1,0,0,0,188,126,1,128,1,0,0,0,192,126,1,128,1,0,0,0,196,126,1,128,1,0,0,0,200, - 126,1,128,1,0,0,0,204,126,1,128,1,0,0,0,212,126,1,128,1,0,0,0,224,126,1,128,1,0,0,0,232,126,1,128,1,0,0,0,248,126,1,128,1,0,0,0,4,127,1,128,1,0,0,0,16,127,1,128,1,0,0,0,28,127,1,128,1,0,0,0,32,127,1,128,1,0,0,0,36,127,1,128,1,0,0,0,40,127,1, - 128,1,0,0,0,44,127,1,128,1,0,0,0,48,127,1,128,1,0,0,0,52,127,1,128,1,0,0,0,56,127,1,128,1,0,0,0,60,127,1,128,1,0,0,0,64,127,1,128,1,0,0,0,68,127,1,128,1,0,0,0,72,127,1,128,1,0,0,0,80,127,1,128,1,0,0,0,88,127,1,128,1,0,0,0,100,127,1,128,1,0,0, - 0,108,127,1,128,1,0,0,0,44,127,1,128,1,0,0,0,116,127,1,128,1,0,0,0,124,127,1,128,1,0,0,0,132,127,1,128,1,0,0,0,144,127,1,128,1,0,0,0,160,127,1,128,1,0,0,0,168,127,1,128,1,0,0,0,184,127,1,128,1,0,0,0,196,127,1,128,1,0,0,0,200,127,1,128,1,0,0, - 0,208,127,1,128,1,0,0,0,224,127,1,128,1,0,0,0,248,127,1,128,1,0,0,0,1,0,0,0,0,0,0,0,8,128,1,128,1,0,0,0,16,128,1,128,1,0,0,0,24,128,1,128,1,0,0,0,32,128,1,128,1,0,0,0,40,128,1,128,1,0,0,0,48,128,1,128,1,0,0,0,56,128,1,128,1,0,0,0,64,128,1,128, - 1,0,0,0,80,128,1,128,1,0,0,0,96,128,1,128,1,0,0,0,112,128,1,128,1,0,0,0,136,128,1,128,1,0,0,0,160,128,1,128,1,0,0,0,176,128,1,128,1,0,0,0,200,128,1,128,1,0,0,0,208,128,1,128,1,0,0,0,216,128,1,128,1,0,0,0,224,128,1,128,1,0,0,0,232,128,1,128,1, - 0,0,0,240,128,1,128,1,0,0,0,248,128,1,128,1,0,0,0,0,129,1,128,1,0,0,0,8,129,1,128,1,0,0,0,16,129,1,128,1,0,0,0,24,129,1,128,1,0,0,0,32,129,1,128,1,0,0,0,40,129,1,128,1,0,0,0,56,129,1,128,1,0,0,0,80,129,1,128,1,0,0,0,96,129,1,128,1,0,0,0,232, - 128,1,128,1,0,0,0,112,129,1,128,1,0,0,0,128,129,1,128,1,0,0,0,144,129,1,128,1,0,0,0,160,129,1,128,1,0,0,0,184,129,1,128,1,0,0,0,200,129,1,128,1,0,0,0,224,129,1,128,1,0,0,0,244,129,1,128,1,0,0,0,252,129,1,128,1,0,0,0,8,130,1,128,1,0,0,0,32,130, - 1,128,1,0,0,0,72,130,1,128,1,0,0,0,96,130,1,128,1,0,0,0,83,117,110,0,77,111,110,0,84,117,101,0,87,101,100,0,84,104,117,0,70,114,105,0,83,97,116,0,83,117,110,100,97,121,0,0,77,111,110,100,97,121,0,0,0,0,0,0,84,117,101,115,100,97,121,0,87,101, - 100,110,101,115,100,97,121,0,0,0,0,0,0,0,84,104,117,114,115,100,97,121,0,0,0,0,70,114,105,100,97,121,0,0,0,0,0,0,83,97,116,117,114,100,97,121,0,0,0,0,74,97,110,0,70,101,98,0,77,97,114,0,65,112,114,0,77,97,121,0,74,117,110,0,74,117,108,0,65,117, - 103,0,83,101,112,0,79,99,116,0,78,111,118,0,68,101,99,0,0,0,0,0,74,97,110,117,97,114,121,0,70,101,98,114,117,97,114,121,0,0,0,0,77,97,114,99,104,0,0,0,65,112,114,105,108,0,0,0,74,117,110,101,0,0,0,0,74,117,108,121,0,0,0,0,65,117,103,117,115, - 116,0,0,0,0,0,0,83,101,112,116,101,109,98,101,114,0,0,0,0,0,0,0,79,99,116,111,98,101,114,0,78,111,118,101,109,98,101,114,0,0,0,0,0,0,0,0,68,101,99,101,109,98,101,114,0,0,0,0,65,77,0,0,80,77,0,0,0,0,0,0,77,77,47,100,100,47,121,121,0,0,0,0,0,0, - 0,0,100,100,100,100,44,32,77,77,77,77,32,100,100,44,32,121,121,121,121,0,0,0,0,0,72,72,58,109,109,58,115,115,0,0,0,0,0,0,0,0,83,0,117,0,110,0,0,0,77,0,111,0,110,0,0,0,84,0,117,0,101,0,0,0,87,0,101,0,100,0,0,0,84,0,104,0,117,0,0,0,70,0,114,0, - 105,0,0,0,83,0,97,0,116,0,0,0,83,0,117,0,110,0,100,0,97,0,121,0,0,0,0,0,77,0,111,0,110,0,100,0,97,0,121,0,0,0,0,0,84,0,117,0,101,0,115,0,100,0,97,0,121,0,0,0,87,0,101,0,100,0,110,0,101,0,115,0,100,0,97,0,121,0,0,0,0,0,0,0,84,0,104,0,117,0,114, - 0,115,0,100,0,97,0,121,0,0,0,0,0,0,0,0,0,70,0,114,0,105,0,100,0,97,0,121,0,0,0,0,0,83,0,97,0,116,0,117,0,114,0,100,0,97,0,121,0,0,0,0,0,0,0,0,0,74,0,97,0,110,0,0,0,70,0,101,0,98,0,0,0,77,0,97,0,114,0,0,0,65,0,112,0,114,0,0,0,77,0,97,0,121,0, - 0,0,74,0,117,0,110,0,0,0,74,0,117,0,108,0,0,0,65,0,117,0,103,0,0,0,83,0,101,0,112,0,0,0,79,0,99,0,116,0,0,0,78,0,111,0,118,0,0,0,68,0,101,0,99,0,0,0,74,0,97,0,110,0,117,0,97,0,114,0,121,0,0,0,70,0,101,0,98,0,114,0,117,0,97,0,114,0,121,0,0,0, - 0,0,0,0,0,0,77,0,97,0,114,0,99,0,104,0,0,0,0,0,0,0,65,0,112,0,114,0,105,0,108,0,0,0,0,0,0,0,74,0,117,0,110,0,101,0,0,0,0,0,0,0,0,0,74,0,117,0,108,0,121,0,0,0,0,0,0,0,0,0,65,0,117,0,103,0,117,0,115,0,116,0,0,0,0,0,83,0,101,0,112,0,116,0,101,0, - 109,0,98,0,101,0,114,0,0,0,0,0,0,0,79,0,99,0,116,0,111,0,98,0,101,0,114,0,0,0,78,0,111,0,118,0,101,0,109,0,98,0,101,0,114,0,0,0,0,0,0,0,0,0,68,0,101,0,99,0,101,0,109,0,98,0,101,0,114,0,0,0,0,0,65,0,77,0,0,0,0,0,80,0,77,0,0,0,0,0,0,0,0,0,77,0, - 77,0,47,0,100,0,100,0,47,0,121,0,121,0,0,0,0,0,0,0,0,0,100,0,100,0,100,0,100,0,44,0,32,0,77,0,77,0,77,0,77,0,32,0,100,0,100,0,44,0,32,0,121,0,121,0,121,0,121,0,0,0,72,0,72,0,58,0,109,0,109,0,58,0,115,0,115,0,0,0,0,0,0,0,0,0,101,0,110,0,45,0, - 85,0,83,0,0,0,0,0,0,0,1,0,0,0,22,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,4,0,0,0,24,0,0,0,5,0,0,0,13,0,0,0,6,0,0,0,9,0,0,0,7,0,0,0,12,0,0,0,8,0,0,0,12,0,0,0,9,0,0,0,12,0,0,0,10,0,0,0,7,0,0,0,11,0,0,0,8,0,0,0,12,0,0,0,22,0,0,0,13,0,0,0,22,0,0,0, - 15,0,0,0,2,0,0,0,16,0,0,0,13,0,0,0,17,0,0,0,18,0,0,0,18,0,0,0,2,0,0,0,33,0,0,0,13,0,0,0,53,0,0,0,2,0,0,0,65,0,0,0,13,0,0,0,67,0,0,0,2,0,0,0,80,0,0,0,17,0,0,0,82,0,0,0,13,0,0,0,83,0,0,0,13,0,0,0,87,0,0,0,22,0,0,0,89,0,0,0,11,0,0,0,108,0,0,0,13, - 0,0,0,109,0,0,0,32,0,0,0,112,0,0,0,28,0,0,0,114,0,0,0,9,0,0,0,128,0,0,0,10,0,0,0,129,0,0,0,10,0,0,0,130,0,0,0,9,0,0,0,131,0,0,0,22,0,0,0,132,0,0,0,13,0,0,0,145,0,0,0,41,0,0,0,158,0,0,0,13,0,0,0,161,0,0,0,2,0,0,0,164,0,0,0,11,0,0,0,167,0,0,0, - 13,0,0,0,183,0,0,0,17,0,0,0,206,0,0,0,2,0,0,0,215,0,0,0,11,0,0,0,89,4,0,0,42,0,0,0,24,7,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,40,0,40,0,40,0,40,0,40,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,72,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,129, - 0,129,0,129,0,129,0,129,0,129,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,16,0,16,0,16,0,16,0,16,0,16,0,130,0,130,0,130,0,130,0,130,0,130,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,2,0,2,0,16,0,16,0,16,0,16,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170, - 171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231, - 232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,56,57,58,59,60,61,62,63,64,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118, - 119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179, - 180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240, - 241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173, - 174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234, - 235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55, - 56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,123,124,125,126,127,128,129,130,131,132, - 133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193, - 194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254, - 255,0,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,40,0,40,0,40,0,40,0,40,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,72,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16, - 0,16,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,129,1,129,1,129,1,129,1,129,1,129,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,16,0,16,0,16,0,16,0,16, - 0,16,0,130,1,130,1,130,1,130,1,130,1,130,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,16,0,16,0,16,0,16,0,32,0,32,0,32,0,32,0,32,0,32,0,40,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,32,0,8,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,18,1,16,0,16,0,48,0,16,0,16,0,16,0,16,0,20,0,20,0,16,0,18,1,16,0,16,0,16,0,20,0,18,1,16,0,16,0,16,0,16,0,16,0,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,16,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,16,0,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1, - 1,1,0,0,0,0,0,140,1,128,1,0,0,0,192,119,1,128,1,0,0,0,40,122,1,128,1,0,0,0,97,0,112,0,105,0,45,0,109,0,115,0,45,0,119,0,105,0,110,0,45,0,99,0,111,0,114,0,101,0,45,0,102,0,105,0,98,0,101,0,114,0,115,0,45,0,108,0,49,0,45,0,49,0,45,0,49,0,0,0,0, - 0,0,0,0,0,0,0,2,0,0,0,70,108,115,65,108,108,111,99,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,70,108,115,70,114,101,101,0,0,0,0,0,2,0,0,0,70,108,115,71,101,116,86,97,108,117,101,0,0,0,0,0,0,0,0,0,2,0,0,0,70,108,115,83,101,116,86,97,108,117,101,0,0,0,0, - 0,1,0,0,0,2,0,0,0,0,56,2,128,1,0,0,0,160,56,2,128,1,0,0,0,1,0,0,0,0,0,0,0,240,154,1,128,1,0,0,0,2,0,0,0,0,0,0,0,248,154,1,128,1,0,0,0,3,0,0,0,0,0,0,0,0,155,1,128,1,0,0,0,4,0,0,0,0,0,0,0,8,155,1,128,1,0,0,0,5,0,0,0,0,0,0,0,24,155,1,128,1,0,0, - 0,6,0,0,0,0,0,0,0,32,155,1,128,1,0,0,0,7,0,0,0,0,0,0,0,40,155,1,128,1,0,0,0,8,0,0,0,0,0,0,0,48,155,1,128,1,0,0,0,9,0,0,0,0,0,0,0,56,155,1,128,1,0,0,0,10,0,0,0,0,0,0,0,64,155,1,128,1,0,0,0,11,0,0,0,0,0,0,0,72,155,1,128,1,0,0,0,12,0,0,0,0,0,0, - 0,80,155,1,128,1,0,0,0,13,0,0,0,0,0,0,0,88,155,1,128,1,0,0,0,14,0,0,0,0,0,0,0,96,155,1,128,1,0,0,0,15,0,0,0,0,0,0,0,104,155,1,128,1,0,0,0,16,0,0,0,0,0,0,0,112,155,1,128,1,0,0,0,17,0,0,0,0,0,0,0,120,155,1,128,1,0,0,0,18,0,0,0,0,0,0,0,128,155, - 1,128,1,0,0,0,19,0,0,0,0,0,0,0,136,155,1,128,1,0,0,0,20,0,0,0,0,0,0,0,144,155,1,128,1,0,0,0,21,0,0,0,0,0,0,0,152,155,1,128,1,0,0,0,22,0,0,0,0,0,0,0,160,155,1,128,1,0,0,0,24,0,0,0,0,0,0,0,168,155,1,128,1,0,0,0,25,0,0,0,0,0,0,0,176,155,1,128,1, - 0,0,0,26,0,0,0,0,0,0,0,184,155,1,128,1,0,0,0,27,0,0,0,0,0,0,0,192,155,1,128,1,0,0,0,28,0,0,0,0,0,0,0,200,155,1,128,1,0,0,0,29,0,0,0,0,0,0,0,208,155,1,128,1,0,0,0,30,0,0,0,0,0,0,0,216,155,1,128,1,0,0,0,31,0,0,0,0,0,0,0,224,155,1,128,1,0,0,0,32, - 0,0,0,0,0,0,0,232,155,1,128,1,0,0,0,33,0,0,0,0,0,0,0,240,155,1,128,1,0,0,0,34,0,0,0,0,0,0,0,248,155,1,128,1,0,0,0,35,0,0,0,0,0,0,0,0,156,1,128,1,0,0,0,36,0,0,0,0,0,0,0,8,156,1,128,1,0,0,0,37,0,0,0,0,0,0,0,16,156,1,128,1,0,0,0,38,0,0,0,0,0,0, - 0,24,156,1,128,1,0,0,0,39,0,0,0,0,0,0,0,32,156,1,128,1,0,0,0,41,0,0,0,0,0,0,0,40,156,1,128,1,0,0,0,42,0,0,0,0,0,0,0,48,156,1,128,1,0,0,0,43,0,0,0,0,0,0,0,56,156,1,128,1,0,0,0,44,0,0,0,0,0,0,0,64,156,1,128,1,0,0,0,45,0,0,0,0,0,0,0,72,156,1,128, - 1,0,0,0,47,0,0,0,0,0,0,0,80,156,1,128,1,0,0,0,54,0,0,0,0,0,0,0,88,156,1,128,1,0,0,0,55,0,0,0,0,0,0,0,96,156,1,128,1,0,0,0,56,0,0,0,0,0,0,0,104,156,1,128,1,0,0,0,57,0,0,0,0,0,0,0,112,156,1,128,1,0,0,0,62,0,0,0,0,0,0,0,120,156,1,128,1,0,0,0,63, - 0,0,0,0,0,0,0,128,156,1,128,1,0,0,0,64,0,0,0,0,0,0,0,136,156,1,128,1,0,0,0,65,0,0,0,0,0,0,0,144,156,1,128,1,0,0,0,67,0,0,0,0,0,0,0,152,156,1,128,1,0,0,0,68,0,0,0,0,0,0,0,160,156,1,128,1,0,0,0,70,0,0,0,0,0,0,0,168,156,1,128,1,0,0,0,71,0,0,0,0, - 0,0,0,176,156,1,128,1,0,0,0,73,0,0,0,0,0,0,0,184,156,1,128,1,0,0,0,74,0,0,0,0,0,0,0,192,156,1,128,1,0,0,0,75,0,0,0,0,0,0,0,200,156,1,128,1,0,0,0,78,0,0,0,0,0,0,0,208,156,1,128,1,0,0,0,79,0,0,0,0,0,0,0,216,156,1,128,1,0,0,0,80,0,0,0,0,0,0,0,224, - 156,1,128,1,0,0,0,86,0,0,0,0,0,0,0,232,156,1,128,1,0,0,0,87,0,0,0,0,0,0,0,240,156,1,128,1,0,0,0,90,0,0,0,0,0,0,0,248,156,1,128,1,0,0,0,101,0,0,0,0,0,0,0,0,157,1,128,1,0,0,0,127,0,0,0,0,0,0,0,8,157,1,128,1,0,0,0,1,4,0,0,0,0,0,0,16,157,1,128,1, - 0,0,0,2,4,0,0,0,0,0,0,32,157,1,128,1,0,0,0,3,4,0,0,0,0,0,0,48,157,1,128,1,0,0,0,4,4,0,0,0,0,0,0,216,123,1,128,1,0,0,0,5,4,0,0,0,0,0,0,64,157,1,128,1,0,0,0,6,4,0,0,0,0,0,0,80,157,1,128,1,0,0,0,7,4,0,0,0,0,0,0,96,157,1,128,1,0,0,0,8,4,0,0,0,0, - 0,0,112,157,1,128,1,0,0,0,9,4,0,0,0,0,0,0,96,130,1,128,1,0,0,0,11,4,0,0,0,0,0,0,128,157,1,128,1,0,0,0,12,4,0,0,0,0,0,0,144,157,1,128,1,0,0,0,13,4,0,0,0,0,0,0,160,157,1,128,1,0,0,0,14,4,0,0,0,0,0,0,176,157,1,128,1,0,0,0,15,4,0,0,0,0,0,0,192,157, - 1,128,1,0,0,0,16,4,0,0,0,0,0,0,208,157,1,128,1,0,0,0,17,4,0,0,0,0,0,0,168,123,1,128,1,0,0,0,18,4,0,0,0,0,0,0,200,123,1,128,1,0,0,0,19,4,0,0,0,0,0,0,224,157,1,128,1,0,0,0,20,4,0,0,0,0,0,0,240,157,1,128,1,0,0,0,21,4,0,0,0,0,0,0,0,158,1,128,1,0, - 0,0,22,4,0,0,0,0,0,0,16,158,1,128,1,0,0,0,24,4,0,0,0,0,0,0,32,158,1,128,1,0,0,0,25,4,0,0,0,0,0,0,48,158,1,128,1,0,0,0,26,4,0,0,0,0,0,0,64,158,1,128,1,0,0,0,27,4,0,0,0,0,0,0,80,158,1,128,1,0,0,0,28,4,0,0,0,0,0,0,96,158,1,128,1,0,0,0,29,4,0,0, - 0,0,0,0,112,158,1,128,1,0,0,0,30,4,0,0,0,0,0,0,128,158,1,128,1,0,0,0,31,4,0,0,0,0,0,0,144,158,1,128,1,0,0,0,32,4,0,0,0,0,0,0,160,158,1,128,1,0,0,0,33,4,0,0,0,0,0,0,176,158,1,128,1,0,0,0,34,4,0,0,0,0,0,0,192,158,1,128,1,0,0,0,35,4,0,0,0,0,0,0, - 208,158,1,128,1,0,0,0,36,4,0,0,0,0,0,0,224,158,1,128,1,0,0,0,37,4,0,0,0,0,0,0,240,158,1,128,1,0,0,0,38,4,0,0,0,0,0,0,0,159,1,128,1,0,0,0,39,4,0,0,0,0,0,0,16,159,1,128,1,0,0,0,41,4,0,0,0,0,0,0,32,159,1,128,1,0,0,0,42,4,0,0,0,0,0,0,48,159,1,128, - 1,0,0,0,43,4,0,0,0,0,0,0,64,159,1,128,1,0,0,0,44,4,0,0,0,0,0,0,80,159,1,128,1,0,0,0,45,4,0,0,0,0,0,0,104,159,1,128,1,0,0,0,47,4,0,0,0,0,0,0,120,159,1,128,1,0,0,0,50,4,0,0,0,0,0,0,136,159,1,128,1,0,0,0,52,4,0,0,0,0,0,0,152,159,1,128,1,0,0,0,53, - 4,0,0,0,0,0,0,168,159,1,128,1,0,0,0,54,4,0,0,0,0,0,0,184,159,1,128,1,0,0,0,55,4,0,0,0,0,0,0,200,159,1,128,1,0,0,0,56,4,0,0,0,0,0,0,216,159,1,128,1,0,0,0,57,4,0,0,0,0,0,0,232,159,1,128,1,0,0,0,58,4,0,0,0,0,0,0,248,159,1,128,1,0,0,0,59,4,0,0,0, - 0,0,0,8,160,1,128,1,0,0,0,62,4,0,0,0,0,0,0,24,160,1,128,1,0,0,0,63,4,0,0,0,0,0,0,40,160,1,128,1,0,0,0,64,4,0,0,0,0,0,0,56,160,1,128,1,0,0,0,65,4,0,0,0,0,0,0,72,160,1,128,1,0,0,0,67,4,0,0,0,0,0,0,88,160,1,128,1,0,0,0,68,4,0,0,0,0,0,0,112,160, - 1,128,1,0,0,0,69,4,0,0,0,0,0,0,128,160,1,128,1,0,0,0,70,4,0,0,0,0,0,0,144,160,1,128,1,0,0,0,71,4,0,0,0,0,0,0,160,160,1,128,1,0,0,0,73,4,0,0,0,0,0,0,176,160,1,128,1,0,0,0,74,4,0,0,0,0,0,0,192,160,1,128,1,0,0,0,75,4,0,0,0,0,0,0,208,160,1,128,1, - 0,0,0,76,4,0,0,0,0,0,0,224,160,1,128,1,0,0,0,78,4,0,0,0,0,0,0,240,160,1,128,1,0,0,0,79,4,0,0,0,0,0,0,0,161,1,128,1,0,0,0,80,4,0,0,0,0,0,0,16,161,1,128,1,0,0,0,82,4,0,0,0,0,0,0,32,161,1,128,1,0,0,0,86,4,0,0,0,0,0,0,48,161,1,128,1,0,0,0,87,4,0, - 0,0,0,0,0,64,161,1,128,1,0,0,0,90,4,0,0,0,0,0,0,80,161,1,128,1,0,0,0,101,4,0,0,0,0,0,0,96,161,1,128,1,0,0,0,107,4,0,0,0,0,0,0,112,161,1,128,1,0,0,0,108,4,0,0,0,0,0,0,128,161,1,128,1,0,0,0,129,4,0,0,0,0,0,0,144,161,1,128,1,0,0,0,1,8,0,0,0,0,0, - 0,160,161,1,128,1,0,0,0,4,8,0,0,0,0,0,0,184,123,1,128,1,0,0,0,7,8,0,0,0,0,0,0,176,161,1,128,1,0,0,0,9,8,0,0,0,0,0,0,192,161,1,128,1,0,0,0,10,8,0,0,0,0,0,0,208,161,1,128,1,0,0,0,12,8,0,0,0,0,0,0,224,161,1,128,1,0,0,0,16,8,0,0,0,0,0,0,240,161, - 1,128,1,0,0,0,19,8,0,0,0,0,0,0,0,162,1,128,1,0,0,0,20,8,0,0,0,0,0,0,16,162,1,128,1,0,0,0,22,8,0,0,0,0,0,0,32,162,1,128,1,0,0,0,26,8,0,0,0,0,0,0,48,162,1,128,1,0,0,0,29,8,0,0,0,0,0,0,72,162,1,128,1,0,0,0,44,8,0,0,0,0,0,0,88,162,1,128,1,0,0,0, - 59,8,0,0,0,0,0,0,112,162,1,128,1,0,0,0,62,8,0,0,0,0,0,0,128,162,1,128,1,0,0,0,67,8,0,0,0,0,0,0,144,162,1,128,1,0,0,0,107,8,0,0,0,0,0,0,168,162,1,128,1,0,0,0,1,12,0,0,0,0,0,0,184,162,1,128,1,0,0,0,4,12,0,0,0,0,0,0,200,162,1,128,1,0,0,0,7,12,0, - 0,0,0,0,0,216,162,1,128,1,0,0,0,9,12,0,0,0,0,0,0,232,162,1,128,1,0,0,0,10,12,0,0,0,0,0,0,248,162,1,128,1,0,0,0,12,12,0,0,0,0,0,0,8,163,1,128,1,0,0,0,26,12,0,0,0,0,0,0,24,163,1,128,1,0,0,0,59,12,0,0,0,0,0,0,48,163,1,128,1,0,0,0,107,12,0,0,0,0, - 0,0,64,163,1,128,1,0,0,0,1,16,0,0,0,0,0,0,80,163,1,128,1,0,0,0,4,16,0,0,0,0,0,0,96,163,1,128,1,0,0,0,7,16,0,0,0,0,0,0,112,163,1,128,1,0,0,0,9,16,0,0,0,0,0,0,128,163,1,128,1,0,0,0,10,16,0,0,0,0,0,0,144,163,1,128,1,0,0,0,12,16,0,0,0,0,0,0,160, - 163,1,128,1,0,0,0,26,16,0,0,0,0,0,0,176,163,1,128,1,0,0,0,59,16,0,0,0,0,0,0,192,163,1,128,1,0,0,0,1,20,0,0,0,0,0,0,208,163,1,128,1,0,0,0,4,20,0,0,0,0,0,0,224,163,1,128,1,0,0,0,7,20,0,0,0,0,0,0,240,163,1,128,1,0,0,0,9,20,0,0,0,0,0,0,0,164,1,128, - 1,0,0,0,10,20,0,0,0,0,0,0,16,164,1,128,1,0,0,0,12,20,0,0,0,0,0,0,32,164,1,128,1,0,0,0,26,20,0,0,0,0,0,0,48,164,1,128,1,0,0,0,59,20,0,0,0,0,0,0,72,164,1,128,1,0,0,0,1,24,0,0,0,0,0,0,88,164,1,128,1,0,0,0,9,24,0,0,0,0,0,0,104,164,1,128,1,0,0,0, - 10,24,0,0,0,0,0,0,120,164,1,128,1,0,0,0,12,24,0,0,0,0,0,0,136,164,1,128,1,0,0,0,26,24,0,0,0,0,0,0,152,164,1,128,1,0,0,0,59,24,0,0,0,0,0,0,176,164,1,128,1,0,0,0,1,28,0,0,0,0,0,0,192,164,1,128,1,0,0,0,9,28,0,0,0,0,0,0,208,164,1,128,1,0,0,0,10, - 28,0,0,0,0,0,0,224,164,1,128,1,0,0,0,26,28,0,0,0,0,0,0,240,164,1,128,1,0,0,0,59,28,0,0,0,0,0,0,8,165,1,128,1,0,0,0,1,32,0,0,0,0,0,0,24,165,1,128,1,0,0,0,9,32,0,0,0,0,0,0,40,165,1,128,1,0,0,0,10,32,0,0,0,0,0,0,56,165,1,128,1,0,0,0,59,32,0,0,0, - 0,0,0,72,165,1,128,1,0,0,0,1,36,0,0,0,0,0,0,88,165,1,128,1,0,0,0,9,36,0,0,0,0,0,0,104,165,1,128,1,0,0,0,10,36,0,0,0,0,0,0,120,165,1,128,1,0,0,0,59,36,0,0,0,0,0,0,136,165,1,128,1,0,0,0,1,40,0,0,0,0,0,0,152,165,1,128,1,0,0,0,9,40,0,0,0,0,0,0,168, - 165,1,128,1,0,0,0,10,40,0,0,0,0,0,0,184,165,1,128,1,0,0,0,1,44,0,0,0,0,0,0,200,165,1,128,1,0,0,0,9,44,0,0,0,0,0,0,216,165,1,128,1,0,0,0,10,44,0,0,0,0,0,0,232,165,1,128,1,0,0,0,1,48,0,0,0,0,0,0,248,165,1,128,1,0,0,0,9,48,0,0,0,0,0,0,8,166,1,128, - 1,0,0,0,10,48,0,0,0,0,0,0,24,166,1,128,1,0,0,0,1,52,0,0,0,0,0,0,40,166,1,128,1,0,0,0,9,52,0,0,0,0,0,0,56,166,1,128,1,0,0,0,10,52,0,0,0,0,0,0,72,166,1,128,1,0,0,0,1,56,0,0,0,0,0,0,88,166,1,128,1,0,0,0,10,56,0,0,0,0,0,0,104,166,1,128,1,0,0,0,1, - 60,0,0,0,0,0,0,120,166,1,128,1,0,0,0,10,60,0,0,0,0,0,0,136,166,1,128,1,0,0,0,1,64,0,0,0,0,0,0,152,166,1,128,1,0,0,0,10,64,0,0,0,0,0,0,168,166,1,128,1,0,0,0,10,68,0,0,0,0,0,0,184,166,1,128,1,0,0,0,10,72,0,0,0,0,0,0,200,166,1,128,1,0,0,0,10,76, - 0,0,0,0,0,0,216,166,1,128,1,0,0,0,10,80,0,0,0,0,0,0,232,166,1,128,1,0,0,0,4,124,0,0,0,0,0,0,248,166,1,128,1,0,0,0,26,124,0,0,0,0,0,0,8,167,1,128,1,0,0,0,97,0,114,0,0,0,0,0,98,0,103,0,0,0,0,0,99,0,97,0,0,0,0,0,122,0,104,0,45,0,67,0,72,0,83,0, - 0,0,0,0,99,0,115,0,0,0,0,0,100,0,97,0,0,0,0,0,100,0,101,0,0,0,0,0,101,0,108,0,0,0,0,0,101,0,110,0,0,0,0,0,101,0,115,0,0,0,0,0,102,0,105,0,0,0,0,0,102,0,114,0,0,0,0,0,104,0,101,0,0,0,0,0,104,0,117,0,0,0,0,0,105,0,115,0,0,0,0,0,105,0,116,0,0,0, - 0,0,106,0,97,0,0,0,0,0,107,0,111,0,0,0,0,0,110,0,108,0,0,0,0,0,110,0,111,0,0,0,0,0,112,0,108,0,0,0,0,0,112,0,116,0,0,0,0,0,114,0,111,0,0,0,0,0,114,0,117,0,0,0,0,0,104,0,114,0,0,0,0,0,115,0,107,0,0,0,0,0,115,0,113,0,0,0,0,0,115,0,118,0,0,0,0, - 0,116,0,104,0,0,0,0,0,116,0,114,0,0,0,0,0,117,0,114,0,0,0,0,0,105,0,100,0,0,0,0,0,117,0,107,0,0,0,0,0,98,0,101,0,0,0,0,0,115,0,108,0,0,0,0,0,101,0,116,0,0,0,0,0,108,0,118,0,0,0,0,0,108,0,116,0,0,0,0,0,102,0,97,0,0,0,0,0,118,0,105,0,0,0,0,0,104, - 0,121,0,0,0,0,0,97,0,122,0,0,0,0,0,101,0,117,0,0,0,0,0,109,0,107,0,0,0,0,0,97,0,102,0,0,0,0,0,107,0,97,0,0,0,0,0,102,0,111,0,0,0,0,0,104,0,105,0,0,0,0,0,109,0,115,0,0,0,0,0,107,0,107,0,0,0,0,0,107,0,121,0,0,0,0,0,115,0,119,0,0,0,0,0,117,0,122, - 0,0,0,0,0,116,0,116,0,0,0,0,0,112,0,97,0,0,0,0,0,103,0,117,0,0,0,0,0,116,0,97,0,0,0,0,0,116,0,101,0,0,0,0,0,107,0,110,0,0,0,0,0,109,0,114,0,0,0,0,0,115,0,97,0,0,0,0,0,109,0,110,0,0,0,0,0,103,0,108,0,0,0,0,0,107,0,111,0,107,0,0,0,115,0,121,0, - 114,0,0,0,100,0,105,0,118,0,0,0,0,0,0,0,0,0,0,0,97,0,114,0,45,0,83,0,65,0,0,0,0,0,0,0,98,0,103,0,45,0,66,0,71,0,0,0,0,0,0,0,99,0,97,0,45,0,69,0,83,0,0,0,0,0,0,0,99,0,115,0,45,0,67,0,90,0,0,0,0,0,0,0,100,0,97,0,45,0,68,0,75,0,0,0,0,0,0,0,100, - 0,101,0,45,0,68,0,69,0,0,0,0,0,0,0,101,0,108,0,45,0,71,0,82,0,0,0,0,0,0,0,102,0,105,0,45,0,70,0,73,0,0,0,0,0,0,0,102,0,114,0,45,0,70,0,82,0,0,0,0,0,0,0,104,0,101,0,45,0,73,0,76,0,0,0,0,0,0,0,104,0,117,0,45,0,72,0,85,0,0,0,0,0,0,0,105,0,115,0, - 45,0,73,0,83,0,0,0,0,0,0,0,105,0,116,0,45,0,73,0,84,0,0,0,0,0,0,0,110,0,108,0,45,0,78,0,76,0,0,0,0,0,0,0,110,0,98,0,45,0,78,0,79,0,0,0,0,0,0,0,112,0,108,0,45,0,80,0,76,0,0,0,0,0,0,0,112,0,116,0,45,0,66,0,82,0,0,0,0,0,0,0,114,0,111,0,45,0,82, - 0,79,0,0,0,0,0,0,0,114,0,117,0,45,0,82,0,85,0,0,0,0,0,0,0,104,0,114,0,45,0,72,0,82,0,0,0,0,0,0,0,115,0,107,0,45,0,83,0,75,0,0,0,0,0,0,0,115,0,113,0,45,0,65,0,76,0,0,0,0,0,0,0,115,0,118,0,45,0,83,0,69,0,0,0,0,0,0,0,116,0,104,0,45,0,84,0,72,0, - 0,0,0,0,0,0,116,0,114,0,45,0,84,0,82,0,0,0,0,0,0,0,117,0,114,0,45,0,80,0,75,0,0,0,0,0,0,0,105,0,100,0,45,0,73,0,68,0,0,0,0,0,0,0,117,0,107,0,45,0,85,0,65,0,0,0,0,0,0,0,98,0,101,0,45,0,66,0,89,0,0,0,0,0,0,0,115,0,108,0,45,0,83,0,73,0,0,0,0,0, - 0,0,101,0,116,0,45,0,69,0,69,0,0,0,0,0,0,0,108,0,118,0,45,0,76,0,86,0,0,0,0,0,0,0,108,0,116,0,45,0,76,0,84,0,0,0,0,0,0,0,102,0,97,0,45,0,73,0,82,0,0,0,0,0,0,0,118,0,105,0,45,0,86,0,78,0,0,0,0,0,0,0,104,0,121,0,45,0,65,0,77,0,0,0,0,0,0,0,97,0, - 122,0,45,0,65,0,90,0,45,0,76,0,97,0,116,0,110,0,0,0,0,0,101,0,117,0,45,0,69,0,83,0,0,0,0,0,0,0,109,0,107,0,45,0,77,0,75,0,0,0,0,0,0,0,116,0,110,0,45,0,90,0,65,0,0,0,0,0,0,0,120,0,104,0,45,0,90,0,65,0,0,0,0,0,0,0,122,0,117,0,45,0,90,0,65,0,0, - 0,0,0,0,0,97,0,102,0,45,0,90,0,65,0,0,0,0,0,0,0,107,0,97,0,45,0,71,0,69,0,0,0,0,0,0,0,102,0,111,0,45,0,70,0,79,0,0,0,0,0,0,0,104,0,105,0,45,0,73,0,78,0,0,0,0,0,0,0,109,0,116,0,45,0,77,0,84,0,0,0,0,0,0,0,115,0,101,0,45,0,78,0,79,0,0,0,0,0,0,0, - 109,0,115,0,45,0,77,0,89,0,0,0,0,0,0,0,107,0,107,0,45,0,75,0,90,0,0,0,0,0,0,0,107,0,121,0,45,0,75,0,71,0,0,0,0,0,0,0,115,0,119,0,45,0,75,0,69,0,0,0,0,0,0,0,117,0,122,0,45,0,85,0,90,0,45,0,76,0,97,0,116,0,110,0,0,0,0,0,116,0,116,0,45,0,82,0,85, - 0,0,0,0,0,0,0,98,0,110,0,45,0,73,0,78,0,0,0,0,0,0,0,112,0,97,0,45,0,73,0,78,0,0,0,0,0,0,0,103,0,117,0,45,0,73,0,78,0,0,0,0,0,0,0,116,0,97,0,45,0,73,0,78,0,0,0,0,0,0,0,116,0,101,0,45,0,73,0,78,0,0,0,0,0,0,0,107,0,110,0,45,0,73,0,78,0,0,0,0,0, - 0,0,109,0,108,0,45,0,73,0,78,0,0,0,0,0,0,0,109,0,114,0,45,0,73,0,78,0,0,0,0,0,0,0,115,0,97,0,45,0,73,0,78,0,0,0,0,0,0,0,109,0,110,0,45,0,77,0,78,0,0,0,0,0,0,0,99,0,121,0,45,0,71,0,66,0,0,0,0,0,0,0,103,0,108,0,45,0,69,0,83,0,0,0,0,0,0,0,107,0, - 111,0,107,0,45,0,73,0,78,0,0,0,0,0,115,0,121,0,114,0,45,0,83,0,89,0,0,0,0,0,100,0,105,0,118,0,45,0,77,0,86,0,0,0,0,0,113,0,117,0,122,0,45,0,66,0,79,0,0,0,0,0,110,0,115,0,45,0,90,0,65,0,0,0,0,0,0,0,109,0,105,0,45,0,78,0,90,0,0,0,0,0,0,0,97,0, - 114,0,45,0,73,0,81,0,0,0,0,0,0,0,100,0,101,0,45,0,67,0,72,0,0,0,0,0,0,0,101,0,110,0,45,0,71,0,66,0,0,0,0,0,0,0,101,0,115,0,45,0,77,0,88,0,0,0,0,0,0,0,102,0,114,0,45,0,66,0,69,0,0,0,0,0,0,0,105,0,116,0,45,0,67,0,72,0,0,0,0,0,0,0,110,0,108,0,45, - 0,66,0,69,0,0,0,0,0,0,0,110,0,110,0,45,0,78,0,79,0,0,0,0,0,0,0,112,0,116,0,45,0,80,0,84,0,0,0,0,0,0,0,115,0,114,0,45,0,83,0,80,0,45,0,76,0,97,0,116,0,110,0,0,0,0,0,115,0,118,0,45,0,70,0,73,0,0,0,0,0,0,0,97,0,122,0,45,0,65,0,90,0,45,0,67,0,121, - 0,114,0,108,0,0,0,0,0,115,0,101,0,45,0,83,0,69,0,0,0,0,0,0,0,109,0,115,0,45,0,66,0,78,0,0,0,0,0,0,0,117,0,122,0,45,0,85,0,90,0,45,0,67,0,121,0,114,0,108,0,0,0,0,0,113,0,117,0,122,0,45,0,69,0,67,0,0,0,0,0,97,0,114,0,45,0,69,0,71,0,0,0,0,0,0,0, - 122,0,104,0,45,0,72,0,75,0,0,0,0,0,0,0,100,0,101,0,45,0,65,0,84,0,0,0,0,0,0,0,101,0,110,0,45,0,65,0,85,0,0,0,0,0,0,0,101,0,115,0,45,0,69,0,83,0,0,0,0,0,0,0,102,0,114,0,45,0,67,0,65,0,0,0,0,0,0,0,115,0,114,0,45,0,83,0,80,0,45,0,67,0,121,0,114, - 0,108,0,0,0,0,0,115,0,101,0,45,0,70,0,73,0,0,0,0,0,0,0,113,0,117,0,122,0,45,0,80,0,69,0,0,0,0,0,97,0,114,0,45,0,76,0,89,0,0,0,0,0,0,0,122,0,104,0,45,0,83,0,71,0,0,0,0,0,0,0,100,0,101,0,45,0,76,0,85,0,0,0,0,0,0,0,101,0,110,0,45,0,67,0,65,0,0, - 0,0,0,0,0,101,0,115,0,45,0,71,0,84,0,0,0,0,0,0,0,102,0,114,0,45,0,67,0,72,0,0,0,0,0,0,0,104,0,114,0,45,0,66,0,65,0,0,0,0,0,0,0,115,0,109,0,106,0,45,0,78,0,79,0,0,0,0,0,97,0,114,0,45,0,68,0,90,0,0,0,0,0,0,0,122,0,104,0,45,0,77,0,79,0,0,0,0,0, - 0,0,100,0,101,0,45,0,76,0,73,0,0,0,0,0,0,0,101,0,110,0,45,0,78,0,90,0,0,0,0,0,0,0,101,0,115,0,45,0,67,0,82,0,0,0,0,0,0,0,102,0,114,0,45,0,76,0,85,0,0,0,0,0,0,0,98,0,115,0,45,0,66,0,65,0,45,0,76,0,97,0,116,0,110,0,0,0,0,0,115,0,109,0,106,0,45, - 0,83,0,69,0,0,0,0,0,97,0,114,0,45,0,77,0,65,0,0,0,0,0,0,0,101,0,110,0,45,0,73,0,69,0,0,0,0,0,0,0,101,0,115,0,45,0,80,0,65,0,0,0,0,0,0,0,102,0,114,0,45,0,77,0,67,0,0,0,0,0,0,0,115,0,114,0,45,0,66,0,65,0,45,0,76,0,97,0,116,0,110,0,0,0,0,0,115, - 0,109,0,97,0,45,0,78,0,79,0,0,0,0,0,97,0,114,0,45,0,84,0,78,0,0,0,0,0,0,0,101,0,110,0,45,0,90,0,65,0,0,0,0,0,0,0,101,0,115,0,45,0,68,0,79,0,0,0,0,0,0,0,115,0,114,0,45,0,66,0,65,0,45,0,67,0,121,0,114,0,108,0,0,0,0,0,115,0,109,0,97,0,45,0,83,0, - 69,0,0,0,0,0,97,0,114,0,45,0,79,0,77,0,0,0,0,0,0,0,101,0,110,0,45,0,74,0,77,0,0,0,0,0,0,0,101,0,115,0,45,0,86,0,69,0,0,0,0,0,0,0,115,0,109,0,115,0,45,0,70,0,73,0,0,0,0,0,97,0,114,0,45,0,89,0,69,0,0,0,0,0,0,0,101,0,110,0,45,0,67,0,66,0,0,0,0, - 0,0,0,101,0,115,0,45,0,67,0,79,0,0,0,0,0,0,0,115,0,109,0,110,0,45,0,70,0,73,0,0,0,0,0,97,0,114,0,45,0,83,0,89,0,0,0,0,0,0,0,101,0,110,0,45,0,66,0,90,0,0,0,0,0,0,0,101,0,115,0,45,0,80,0,69,0,0,0,0,0,0,0,97,0,114,0,45,0,74,0,79,0,0,0,0,0,0,0,101, - 0,110,0,45,0,84,0,84,0,0,0,0,0,0,0,101,0,115,0,45,0,65,0,82,0,0,0,0,0,0,0,97,0,114,0,45,0,76,0,66,0,0,0,0,0,0,0,101,0,110,0,45,0,90,0,87,0,0,0,0,0,0,0,101,0,115,0,45,0,69,0,67,0,0,0,0,0,0,0,97,0,114,0,45,0,75,0,87,0,0,0,0,0,0,0,101,0,110,0,45, - 0,80,0,72,0,0,0,0,0,0,0,101,0,115,0,45,0,67,0,76,0,0,0,0,0,0,0,97,0,114,0,45,0,65,0,69,0,0,0,0,0,0,0,101,0,115,0,45,0,85,0,89,0,0,0,0,0,0,0,97,0,114,0,45,0,66,0,72,0,0,0,0,0,0,0,101,0,115,0,45,0,80,0,89,0,0,0,0,0,0,0,97,0,114,0,45,0,81,0,65, - 0,0,0,0,0,0,0,101,0,115,0,45,0,66,0,79,0,0,0,0,0,0,0,101,0,115,0,45,0,83,0,86,0,0,0,0,0,0,0,101,0,115,0,45,0,72,0,78,0,0,0,0,0,0,0,101,0,115,0,45,0,78,0,73,0,0,0,0,0,0,0,101,0,115,0,45,0,80,0,82,0,0,0,0,0,0,0,122,0,104,0,45,0,67,0,72,0,84,0, - 0,0,0,0,115,0,114,0,0,0,0,0,8,157,1,128,1,0,0,0,66,0,0,0,0,0,0,0,88,156,1,128,1,0,0,0,44,0,0,0,0,0,0,0,80,181,1,128,1,0,0,0,113,0,0,0,0,0,0,0,240,154,1,128,1,0,0,0,0,0,0,0,0,0,0,0,96,181,1,128,1,0,0,0,216,0,0,0,0,0,0,0,112,181,1,128,1,0,0,0, - 218,0,0,0,0,0,0,0,128,181,1,128,1,0,0,0,177,0,0,0,0,0,0,0,144,181,1,128,1,0,0,0,160,0,0,0,0,0,0,0,160,181,1,128,1,0,0,0,143,0,0,0,0,0,0,0,176,181,1,128,1,0,0,0,207,0,0,0,0,0,0,0,192,181,1,128,1,0,0,0,213,0,0,0,0,0,0,0,208,181,1,128,1,0,0,0,210, - 0,0,0,0,0,0,0,224,181,1,128,1,0,0,0,169,0,0,0,0,0,0,0,240,181,1,128,1,0,0,0,185,0,0,0,0,0,0,0,0,182,1,128,1,0,0,0,196,0,0,0,0,0,0,0,16,182,1,128,1,0,0,0,220,0,0,0,0,0,0,0,32,182,1,128,1,0,0,0,67,0,0,0,0,0,0,0,48,182,1,128,1,0,0,0,204,0,0,0,0, - 0,0,0,64,182,1,128,1,0,0,0,191,0,0,0,0,0,0,0,80,182,1,128,1,0,0,0,200,0,0,0,0,0,0,0,64,156,1,128,1,0,0,0,41,0,0,0,0,0,0,0,96,182,1,128,1,0,0,0,155,0,0,0,0,0,0,0,120,182,1,128,1,0,0,0,107,0,0,0,0,0,0,0,0,156,1,128,1,0,0,0,33,0,0,0,0,0,0,0,144, - 182,1,128,1,0,0,0,99,0,0,0,0,0,0,0,248,154,1,128,1,0,0,0,1,0,0,0,0,0,0,0,160,182,1,128,1,0,0,0,68,0,0,0,0,0,0,0,176,182,1,128,1,0,0,0,125,0,0,0,0,0,0,0,192,182,1,128,1,0,0,0,183,0,0,0,0,0,0,0,0,155,1,128,1,0,0,0,2,0,0,0,0,0,0,0,216,182,1,128, - 1,0,0,0,69,0,0,0,0,0,0,0,24,155,1,128,1,0,0,0,4,0,0,0,0,0,0,0,232,182,1,128,1,0,0,0,71,0,0,0,0,0,0,0,248,182,1,128,1,0,0,0,135,0,0,0,0,0,0,0,32,155,1,128,1,0,0,0,5,0,0,0,0,0,0,0,8,183,1,128,1,0,0,0,72,0,0,0,0,0,0,0,40,155,1,128,1,0,0,0,6,0,0, - 0,0,0,0,0,24,183,1,128,1,0,0,0,162,0,0,0,0,0,0,0,40,183,1,128,1,0,0,0,145,0,0,0,0,0,0,0,56,183,1,128,1,0,0,0,73,0,0,0,0,0,0,0,72,183,1,128,1,0,0,0,179,0,0,0,0,0,0,0,88,183,1,128,1,0,0,0,171,0,0,0,0,0,0,0,0,157,1,128,1,0,0,0,65,0,0,0,0,0,0,0, - 104,183,1,128,1,0,0,0,139,0,0,0,0,0,0,0,48,155,1,128,1,0,0,0,7,0,0,0,0,0,0,0,120,183,1,128,1,0,0,0,74,0,0,0,0,0,0,0,56,155,1,128,1,0,0,0,8,0,0,0,0,0,0,0,136,183,1,128,1,0,0,0,163,0,0,0,0,0,0,0,152,183,1,128,1,0,0,0,205,0,0,0,0,0,0,0,168,183, - 1,128,1,0,0,0,172,0,0,0,0,0,0,0,184,183,1,128,1,0,0,0,201,0,0,0,0,0,0,0,200,183,1,128,1,0,0,0,146,0,0,0,0,0,0,0,216,183,1,128,1,0,0,0,186,0,0,0,0,0,0,0,232,183,1,128,1,0,0,0,197,0,0,0,0,0,0,0,248,183,1,128,1,0,0,0,180,0,0,0,0,0,0,0,8,184,1,128, - 1,0,0,0,214,0,0,0,0,0,0,0,24,184,1,128,1,0,0,0,208,0,0,0,0,0,0,0,40,184,1,128,1,0,0,0,75,0,0,0,0,0,0,0,56,184,1,128,1,0,0,0,192,0,0,0,0,0,0,0,72,184,1,128,1,0,0,0,211,0,0,0,0,0,0,0,64,155,1,128,1,0,0,0,9,0,0,0,0,0,0,0,88,184,1,128,1,0,0,0,209, - 0,0,0,0,0,0,0,104,184,1,128,1,0,0,0,221,0,0,0,0,0,0,0,120,184,1,128,1,0,0,0,215,0,0,0,0,0,0,0,136,184,1,128,1,0,0,0,202,0,0,0,0,0,0,0,152,184,1,128,1,0,0,0,181,0,0,0,0,0,0,0,168,184,1,128,1,0,0,0,193,0,0,0,0,0,0,0,184,184,1,128,1,0,0,0,212,0, - 0,0,0,0,0,0,200,184,1,128,1,0,0,0,164,0,0,0,0,0,0,0,216,184,1,128,1,0,0,0,173,0,0,0,0,0,0,0,232,184,1,128,1,0,0,0,223,0,0,0,0,0,0,0,248,184,1,128,1,0,0,0,147,0,0,0,0,0,0,0,8,185,1,128,1,0,0,0,224,0,0,0,0,0,0,0,24,185,1,128,1,0,0,0,187,0,0,0, - 0,0,0,0,40,185,1,128,1,0,0,0,206,0,0,0,0,0,0,0,56,185,1,128,1,0,0,0,225,0,0,0,0,0,0,0,72,185,1,128,1,0,0,0,219,0,0,0,0,0,0,0,88,185,1,128,1,0,0,0,222,0,0,0,0,0,0,0,104,185,1,128,1,0,0,0,217,0,0,0,0,0,0,0,120,185,1,128,1,0,0,0,198,0,0,0,0,0,0, - 0,16,156,1,128,1,0,0,0,35,0,0,0,0,0,0,0,136,185,1,128,1,0,0,0,101,0,0,0,0,0,0,0,72,156,1,128,1,0,0,0,42,0,0,0,0,0,0,0,152,185,1,128,1,0,0,0,108,0,0,0,0,0,0,0,40,156,1,128,1,0,0,0,38,0,0,0,0,0,0,0,168,185,1,128,1,0,0,0,104,0,0,0,0,0,0,0,72,155, - 1,128,1,0,0,0,10,0,0,0,0,0,0,0,184,185,1,128,1,0,0,0,76,0,0,0,0,0,0,0,104,156,1,128,1,0,0,0,46,0,0,0,0,0,0,0,200,185,1,128,1,0,0,0,115,0,0,0,0,0,0,0,80,155,1,128,1,0,0,0,11,0,0,0,0,0,0,0,216,185,1,128,1,0,0,0,148,0,0,0,0,0,0,0,232,185,1,128, - 1,0,0,0,165,0,0,0,0,0,0,0,248,185,1,128,1,0,0,0,174,0,0,0,0,0,0,0,8,186,1,128,1,0,0,0,77,0,0,0,0,0,0,0,24,186,1,128,1,0,0,0,182,0,0,0,0,0,0,0,40,186,1,128,1,0,0,0,188,0,0,0,0,0,0,0,232,156,1,128,1,0,0,0,62,0,0,0,0,0,0,0,56,186,1,128,1,0,0,0, - 136,0,0,0,0,0,0,0,176,156,1,128,1,0,0,0,55,0,0,0,0,0,0,0,72,186,1,128,1,0,0,0,127,0,0,0,0,0,0,0,88,155,1,128,1,0,0,0,12,0,0,0,0,0,0,0,88,186,1,128,1,0,0,0,78,0,0,0,0,0,0,0,112,156,1,128,1,0,0,0,47,0,0,0,0,0,0,0,104,186,1,128,1,0,0,0,116,0,0, - 0,0,0,0,0,184,155,1,128,1,0,0,0,24,0,0,0,0,0,0,0,120,186,1,128,1,0,0,0,175,0,0,0,0,0,0,0,136,186,1,128,1,0,0,0,90,0,0,0,0,0,0,0,96,155,1,128,1,0,0,0,13,0,0,0,0,0,0,0,152,186,1,128,1,0,0,0,79,0,0,0,0,0,0,0,56,156,1,128,1,0,0,0,40,0,0,0,0,0,0, - 0,168,186,1,128,1,0,0,0,106,0,0,0,0,0,0,0,240,155,1,128,1,0,0,0,31,0,0,0,0,0,0,0,184,186,1,128,1,0,0,0,97,0,0,0,0,0,0,0,104,155,1,128,1,0,0,0,14,0,0,0,0,0,0,0,200,186,1,128,1,0,0,0,80,0,0,0,0,0,0,0,112,155,1,128,1,0,0,0,15,0,0,0,0,0,0,0,216, - 186,1,128,1,0,0,0,149,0,0,0,0,0,0,0,232,186,1,128,1,0,0,0,81,0,0,0,0,0,0,0,120,155,1,128,1,0,0,0,16,0,0,0,0,0,0,0,248,186,1,128,1,0,0,0,82,0,0,0,0,0,0,0,96,156,1,128,1,0,0,0,45,0,0,0,0,0,0,0,8,187,1,128,1,0,0,0,114,0,0,0,0,0,0,0,128,156,1,128, - 1,0,0,0,49,0,0,0,0,0,0,0,24,187,1,128,1,0,0,0,120,0,0,0,0,0,0,0,200,156,1,128,1,0,0,0,58,0,0,0,0,0,0,0,40,187,1,128,1,0,0,0,130,0,0,0,0,0,0,0,128,155,1,128,1,0,0,0,17,0,0,0,0,0,0,0,240,156,1,128,1,0,0,0,63,0,0,0,0,0,0,0,56,187,1,128,1,0,0,0, - 137,0,0,0,0,0,0,0,72,187,1,128,1,0,0,0,83,0,0,0,0,0,0,0,136,156,1,128,1,0,0,0,50,0,0,0,0,0,0,0,88,187,1,128,1,0,0,0,121,0,0,0,0,0,0,0,32,156,1,128,1,0,0,0,37,0,0,0,0,0,0,0,104,187,1,128,1,0,0,0,103,0,0,0,0,0,0,0,24,156,1,128,1,0,0,0,36,0,0,0, - 0,0,0,0,120,187,1,128,1,0,0,0,102,0,0,0,0,0,0,0,136,187,1,128,1,0,0,0,142,0,0,0,0,0,0,0,80,156,1,128,1,0,0,0,43,0,0,0,0,0,0,0,152,187,1,128,1,0,0,0,109,0,0,0,0,0,0,0,168,187,1,128,1,0,0,0,131,0,0,0,0,0,0,0,224,156,1,128,1,0,0,0,61,0,0,0,0,0, - 0,0,184,187,1,128,1,0,0,0,134,0,0,0,0,0,0,0,208,156,1,128,1,0,0,0,59,0,0,0,0,0,0,0,200,187,1,128,1,0,0,0,132,0,0,0,0,0,0,0,120,156,1,128,1,0,0,0,48,0,0,0,0,0,0,0,216,187,1,128,1,0,0,0,157,0,0,0,0,0,0,0,232,187,1,128,1,0,0,0,119,0,0,0,0,0,0,0, - 248,187,1,128,1,0,0,0,117,0,0,0,0,0,0,0,8,188,1,128,1,0,0,0,85,0,0,0,0,0,0,0,136,155,1,128,1,0,0,0,18,0,0,0,0,0,0,0,24,188,1,128,1,0,0,0,150,0,0,0,0,0,0,0,40,188,1,128,1,0,0,0,84,0,0,0,0,0,0,0,56,188,1,128,1,0,0,0,151,0,0,0,0,0,0,0,144,155,1, - 128,1,0,0,0,19,0,0,0,0,0,0,0,72,188,1,128,1,0,0,0,141,0,0,0,0,0,0,0,168,156,1,128,1,0,0,0,54,0,0,0,0,0,0,0,88,188,1,128,1,0,0,0,126,0,0,0,0,0,0,0,152,155,1,128,1,0,0,0,20,0,0,0,0,0,0,0,104,188,1,128,1,0,0,0,86,0,0,0,0,0,0,0,160,155,1,128,1,0, - 0,0,21,0,0,0,0,0,0,0,120,188,1,128,1,0,0,0,87,0,0,0,0,0,0,0,136,188,1,128,1,0,0,0,152,0,0,0,0,0,0,0,152,188,1,128,1,0,0,0,140,0,0,0,0,0,0,0,168,188,1,128,1,0,0,0,159,0,0,0,0,0,0,0,184,188,1,128,1,0,0,0,168,0,0,0,0,0,0,0,168,155,1,128,1,0,0,0, - 22,0,0,0,0,0,0,0,200,188,1,128,1,0,0,0,88,0,0,0,0,0,0,0,176,155,1,128,1,0,0,0,23,0,0,0,0,0,0,0,216,188,1,128,1,0,0,0,89,0,0,0,0,0,0,0,216,156,1,128,1,0,0,0,60,0,0,0,0,0,0,0,232,188,1,128,1,0,0,0,133,0,0,0,0,0,0,0,248,188,1,128,1,0,0,0,167,0, - 0,0,0,0,0,0,8,189,1,128,1,0,0,0,118,0,0,0,0,0,0,0,24,189,1,128,1,0,0,0,156,0,0,0,0,0,0,0,192,155,1,128,1,0,0,0,25,0,0,0,0,0,0,0,40,189,1,128,1,0,0,0,91,0,0,0,0,0,0,0,8,156,1,128,1,0,0,0,34,0,0,0,0,0,0,0,56,189,1,128,1,0,0,0,100,0,0,0,0,0,0,0, - 72,189,1,128,1,0,0,0,190,0,0,0,0,0,0,0,88,189,1,128,1,0,0,0,195,0,0,0,0,0,0,0,104,189,1,128,1,0,0,0,176,0,0,0,0,0,0,0,120,189,1,128,1,0,0,0,184,0,0,0,0,0,0,0,136,189,1,128,1,0,0,0,203,0,0,0,0,0,0,0,152,189,1,128,1,0,0,0,199,0,0,0,0,0,0,0,200, - 155,1,128,1,0,0,0,26,0,0,0,0,0,0,0,168,189,1,128,1,0,0,0,92,0,0,0,0,0,0,0,8,167,1,128,1,0,0,0,227,0,0,0,0,0,0,0,184,189,1,128,1,0,0,0,194,0,0,0,0,0,0,0,208,189,1,128,1,0,0,0,189,0,0,0,0,0,0,0,232,189,1,128,1,0,0,0,166,0,0,0,0,0,0,0,0,190,1,128, - 1,0,0,0,153,0,0,0,0,0,0,0,208,155,1,128,1,0,0,0,27,0,0,0,0,0,0,0,24,190,1,128,1,0,0,0,154,0,0,0,0,0,0,0,40,190,1,128,1,0,0,0,93,0,0,0,0,0,0,0,144,156,1,128,1,0,0,0,51,0,0,0,0,0,0,0,56,190,1,128,1,0,0,0,122,0,0,0,0,0,0,0,248,156,1,128,1,0,0,0, - 64,0,0,0,0,0,0,0,72,190,1,128,1,0,0,0,138,0,0,0,0,0,0,0,184,156,1,128,1,0,0,0,56,0,0,0,0,0,0,0,88,190,1,128,1,0,0,0,128,0,0,0,0,0,0,0,192,156,1,128,1,0,0,0,57,0,0,0,0,0,0,0,104,190,1,128,1,0,0,0,129,0,0,0,0,0,0,0,216,155,1,128,1,0,0,0,28,0,0, - 0,0,0,0,0,120,190,1,128,1,0,0,0,94,0,0,0,0,0,0,0,136,190,1,128,1,0,0,0,110,0,0,0,0,0,0,0,224,155,1,128,1,0,0,0,29,0,0,0,0,0,0,0,152,190,1,128,1,0,0,0,95,0,0,0,0,0,0,0,160,156,1,128,1,0,0,0,53,0,0,0,0,0,0,0,168,190,1,128,1,0,0,0,124,0,0,0,0,0, - 0,0,248,155,1,128,1,0,0,0,32,0,0,0,0,0,0,0,184,190,1,128,1,0,0,0,98,0,0,0,0,0,0,0,232,155,1,128,1,0,0,0,30,0,0,0,0,0,0,0,200,190,1,128,1,0,0,0,96,0,0,0,0,0,0,0,152,156,1,128,1,0,0,0,52,0,0,0,0,0,0,0,216,190,1,128,1,0,0,0,158,0,0,0,0,0,0,0,240, - 190,1,128,1,0,0,0,123,0,0,0,0,0,0,0,48,156,1,128,1,0,0,0,39,0,0,0,0,0,0,0,8,191,1,128,1,0,0,0,105,0,0,0,0,0,0,0,24,191,1,128,1,0,0,0,111,0,0,0,0,0,0,0,40,191,1,128,1,0,0,0,3,0,0,0,0,0,0,0,56,191,1,128,1,0,0,0,226,0,0,0,0,0,0,0,72,191,1,128,1, - 0,0,0,144,0,0,0,0,0,0,0,88,191,1,128,1,0,0,0,161,0,0,0,0,0,0,0,104,191,1,128,1,0,0,0,178,0,0,0,0,0,0,0,120,191,1,128,1,0,0,0,170,0,0,0,0,0,0,0,136,191,1,128,1,0,0,0,70,0,0,0,0,0,0,0,152,191,1,128,1,0,0,0,112,0,0,0,0,0,0,0,97,0,102,0,45,0,122, - 0,97,0,0,0,0,0,0,0,97,0,114,0,45,0,97,0,101,0,0,0,0,0,0,0,97,0,114,0,45,0,98,0,104,0,0,0,0,0,0,0,97,0,114,0,45,0,100,0,122,0,0,0,0,0,0,0,97,0,114,0,45,0,101,0,103,0,0,0,0,0,0,0,97,0,114,0,45,0,105,0,113,0,0,0,0,0,0,0,97,0,114,0,45,0,106,0,111, - 0,0,0,0,0,0,0,97,0,114,0,45,0,107,0,119,0,0,0,0,0,0,0,97,0,114,0,45,0,108,0,98,0,0,0,0,0,0,0,97,0,114,0,45,0,108,0,121,0,0,0,0,0,0,0,97,0,114,0,45,0,109,0,97,0,0,0,0,0,0,0,97,0,114,0,45,0,111,0,109,0,0,0,0,0,0,0,97,0,114,0,45,0,113,0,97,0,0, - 0,0,0,0,0,97,0,114,0,45,0,115,0,97,0,0,0,0,0,0,0,97,0,114,0,45,0,115,0,121,0,0,0,0,0,0,0,97,0,114,0,45,0,116,0,110,0,0,0,0,0,0,0,97,0,114,0,45,0,121,0,101,0,0,0,0,0,0,0,97,0,122,0,45,0,97,0,122,0,45,0,99,0,121,0,114,0,108,0,0,0,0,0,97,0,122, - 0,45,0,97,0,122,0,45,0,108,0,97,0,116,0,110,0,0,0,0,0,98,0,101,0,45,0,98,0,121,0,0,0,0,0,0,0,98,0,103,0,45,0,98,0,103,0,0,0,0,0,0,0,98,0,110,0,45,0,105,0,110,0,0,0,0,0,0,0,98,0,115,0,45,0,98,0,97,0,45,0,108,0,97,0,116,0,110,0,0,0,0,0,99,0,97, - 0,45,0,101,0,115,0,0,0,0,0,0,0,99,0,115,0,45,0,99,0,122,0,0,0,0,0,0,0,99,0,121,0,45,0,103,0,98,0,0,0,0,0,0,0,100,0,97,0,45,0,100,0,107,0,0,0,0,0,0,0,100,0,101,0,45,0,97,0,116,0,0,0,0,0,0,0,100,0,101,0,45,0,99,0,104,0,0,0,0,0,0,0,100,0,101,0, - 45,0,100,0,101,0,0,0,0,0,0,0,100,0,101,0,45,0,108,0,105,0,0,0,0,0,0,0,100,0,101,0,45,0,108,0,117,0,0,0,0,0,0,0,100,0,105,0,118,0,45,0,109,0,118,0,0,0,0,0,101,0,108,0,45,0,103,0,114,0,0,0,0,0,0,0,101,0,110,0,45,0,97,0,117,0,0,0,0,0,0,0,101,0, - 110,0,45,0,98,0,122,0,0,0,0,0,0,0,101,0,110,0,45,0,99,0,97,0,0,0,0,0,0,0,101,0,110,0,45,0,99,0,98,0,0,0,0,0,0,0,101,0,110,0,45,0,103,0,98,0,0,0,0,0,0,0,101,0,110,0,45,0,105,0,101,0,0,0,0,0,0,0,101,0,110,0,45,0,106,0,109,0,0,0,0,0,0,0,101,0,110, - 0,45,0,110,0,122,0,0,0,0,0,0,0,101,0,110,0,45,0,112,0,104,0,0,0,0,0,0,0,101,0,110,0,45,0,116,0,116,0,0,0,0,0,0,0,101,0,110,0,45,0,117,0,115,0,0,0,0,0,0,0,101,0,110,0,45,0,122,0,97,0,0,0,0,0,0,0,101,0,110,0,45,0,122,0,119,0,0,0,0,0,0,0,101,0, - 115,0,45,0,97,0,114,0,0,0,0,0,0,0,101,0,115,0,45,0,98,0,111,0,0,0,0,0,0,0,101,0,115,0,45,0,99,0,108,0,0,0,0,0,0,0,101,0,115,0,45,0,99,0,111,0,0,0,0,0,0,0,101,0,115,0,45,0,99,0,114,0,0,0,0,0,0,0,101,0,115,0,45,0,100,0,111,0,0,0,0,0,0,0,101,0, - 115,0,45,0,101,0,99,0,0,0,0,0,0,0,101,0,115,0,45,0,101,0,115,0,0,0,0,0,0,0,101,0,115,0,45,0,103,0,116,0,0,0,0,0,0,0,101,0,115,0,45,0,104,0,110,0,0,0,0,0,0,0,101,0,115,0,45,0,109,0,120,0,0,0,0,0,0,0,101,0,115,0,45,0,110,0,105,0,0,0,0,0,0,0,101, - 0,115,0,45,0,112,0,97,0,0,0,0,0,0,0,101,0,115,0,45,0,112,0,101,0,0,0,0,0,0,0,101,0,115,0,45,0,112,0,114,0,0,0,0,0,0,0,101,0,115,0,45,0,112,0,121,0,0,0,0,0,0,0,101,0,115,0,45,0,115,0,118,0,0,0,0,0,0,0,101,0,115,0,45,0,117,0,121,0,0,0,0,0,0,0, - 101,0,115,0,45,0,118,0,101,0,0,0,0,0,0,0,101,0,116,0,45,0,101,0,101,0,0,0,0,0,0,0,101,0,117,0,45,0,101,0,115,0,0,0,0,0,0,0,102,0,97,0,45,0,105,0,114,0,0,0,0,0,0,0,102,0,105,0,45,0,102,0,105,0,0,0,0,0,0,0,102,0,111,0,45,0,102,0,111,0,0,0,0,0, - 0,0,102,0,114,0,45,0,98,0,101,0,0,0,0,0,0,0,102,0,114,0,45,0,99,0,97,0,0,0,0,0,0,0,102,0,114,0,45,0,99,0,104,0,0,0,0,0,0,0,102,0,114,0,45,0,102,0,114,0,0,0,0,0,0,0,102,0,114,0,45,0,108,0,117,0,0,0,0,0,0,0,102,0,114,0,45,0,109,0,99,0,0,0,0,0, - 0,0,103,0,108,0,45,0,101,0,115,0,0,0,0,0,0,0,103,0,117,0,45,0,105,0,110,0,0,0,0,0,0,0,104,0,101,0,45,0,105,0,108,0,0,0,0,0,0,0,104,0,105,0,45,0,105,0,110,0,0,0,0,0,0,0,104,0,114,0,45,0,98,0,97,0,0,0,0,0,0,0,104,0,114,0,45,0,104,0,114,0,0,0,0, - 0,0,0,104,0,117,0,45,0,104,0,117,0,0,0,0,0,0,0,104,0,121,0,45,0,97,0,109,0,0,0,0,0,0,0,105,0,100,0,45,0,105,0,100,0,0,0,0,0,0,0,105,0,115,0,45,0,105,0,115,0,0,0,0,0,0,0,105,0,116,0,45,0,99,0,104,0,0,0,0,0,0,0,105,0,116,0,45,0,105,0,116,0,0,0, - 0,0,0,0,106,0,97,0,45,0,106,0,112,0,0,0,0,0,0,0,107,0,97,0,45,0,103,0,101,0,0,0,0,0,0,0,107,0,107,0,45,0,107,0,122,0,0,0,0,0,0,0,107,0,110,0,45,0,105,0,110,0,0,0,0,0,0,0,107,0,111,0,107,0,45,0,105,0,110,0,0,0,0,0,107,0,111,0,45,0,107,0,114,0, - 0,0,0,0,0,0,107,0,121,0,45,0,107,0,103,0,0,0,0,0,0,0,108,0,116,0,45,0,108,0,116,0,0,0,0,0,0,0,108,0,118,0,45,0,108,0,118,0,0,0,0,0,0,0,109,0,105,0,45,0,110,0,122,0,0,0,0,0,0,0,109,0,107,0,45,0,109,0,107,0,0,0,0,0,0,0,109,0,108,0,45,0,105,0,110, - 0,0,0,0,0,0,0,109,0,110,0,45,0,109,0,110,0,0,0,0,0,0,0,109,0,114,0,45,0,105,0,110,0,0,0,0,0,0,0,109,0,115,0,45,0,98,0,110,0,0,0,0,0,0,0,109,0,115,0,45,0,109,0,121,0,0,0,0,0,0,0,109,0,116,0,45,0,109,0,116,0,0,0,0,0,0,0,110,0,98,0,45,0,110,0,111, - 0,0,0,0,0,0,0,110,0,108,0,45,0,98,0,101,0,0,0,0,0,0,0,110,0,108,0,45,0,110,0,108,0,0,0,0,0,0,0,110,0,110,0,45,0,110,0,111,0,0,0,0,0,0,0,110,0,115,0,45,0,122,0,97,0,0,0,0,0,0,0,112,0,97,0,45,0,105,0,110,0,0,0,0,0,0,0,112,0,108,0,45,0,112,0,108, - 0,0,0,0,0,0,0,112,0,116,0,45,0,98,0,114,0,0,0,0,0,0,0,112,0,116,0,45,0,112,0,116,0,0,0,0,0,0,0,113,0,117,0,122,0,45,0,98,0,111,0,0,0,0,0,113,0,117,0,122,0,45,0,101,0,99,0,0,0,0,0,113,0,117,0,122,0,45,0,112,0,101,0,0,0,0,0,114,0,111,0,45,0,114, - 0,111,0,0,0,0,0,0,0,114,0,117,0,45,0,114,0,117,0,0,0,0,0,0,0,115,0,97,0,45,0,105,0,110,0,0,0,0,0,0,0,115,0,101,0,45,0,102,0,105,0,0,0,0,0,0,0,115,0,101,0,45,0,110,0,111,0,0,0,0,0,0,0,115,0,101,0,45,0,115,0,101,0,0,0,0,0,0,0,115,0,107,0,45,0, - 115,0,107,0,0,0,0,0,0,0,115,0,108,0,45,0,115,0,105,0,0,0,0,0,0,0,115,0,109,0,97,0,45,0,110,0,111,0,0,0,0,0,115,0,109,0,97,0,45,0,115,0,101,0,0,0,0,0,115,0,109,0,106,0,45,0,110,0,111,0,0,0,0,0,115,0,109,0,106,0,45,0,115,0,101,0,0,0,0,0,115,0, - 109,0,110,0,45,0,102,0,105,0,0,0,0,0,115,0,109,0,115,0,45,0,102,0,105,0,0,0,0,0,115,0,113,0,45,0,97,0,108,0,0,0,0,0,0,0,115,0,114,0,45,0,98,0,97,0,45,0,99,0,121,0,114,0,108,0,0,0,0,0,115,0,114,0,45,0,98,0,97,0,45,0,108,0,97,0,116,0,110,0,0,0, - 0,0,115,0,114,0,45,0,115,0,112,0,45,0,99,0,121,0,114,0,108,0,0,0,0,0,115,0,114,0,45,0,115,0,112,0,45,0,108,0,97,0,116,0,110,0,0,0,0,0,115,0,118,0,45,0,102,0,105,0,0,0,0,0,0,0,115,0,118,0,45,0,115,0,101,0,0,0,0,0,0,0,115,0,119,0,45,0,107,0,101, - 0,0,0,0,0,0,0,115,0,121,0,114,0,45,0,115,0,121,0,0,0,0,0,116,0,97,0,45,0,105,0,110,0,0,0,0,0,0,0,116,0,101,0,45,0,105,0,110,0,0,0,0,0,0,0,116,0,104,0,45,0,116,0,104,0,0,0,0,0,0,0,116,0,110,0,45,0,122,0,97,0,0,0,0,0,0,0,116,0,114,0,45,0,116,0, - 114,0,0,0,0,0,0,0,116,0,116,0,45,0,114,0,117,0,0,0,0,0,0,0,117,0,107,0,45,0,117,0,97,0,0,0,0,0,0,0,117,0,114,0,45,0,112,0,107,0,0,0,0,0,0,0,117,0,122,0,45,0,117,0,122,0,45,0,99,0,121,0,114,0,108,0,0,0,0,0,117,0,122,0,45,0,117,0,122,0,45,0,108, - 0,97,0,116,0,110,0,0,0,0,0,118,0,105,0,45,0,118,0,110,0,0,0,0,0,0,0,120,0,104,0,45,0,122,0,97,0,0,0,0,0,0,0,122,0,104,0,45,0,99,0,104,0,115,0,0,0,0,0,122,0,104,0,45,0,99,0,104,0,116,0,0,0,0,0,122,0,104,0,45,0,99,0,110,0,0,0,0,0,0,0,122,0,104, - 0,45,0,104,0,107,0,0,0,0,0,0,0,122,0,104,0,45,0,109,0,111,0,0,0,0,0,0,0,122,0,104,0,45,0,115,0,103,0,0,0,0,0,0,0,122,0,104,0,45,0,116,0,119,0,0,0,0,0,0,0,122,0,117,0,45,0,122,0,97,0,0,0,0,0,0,0,34,5,147,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, - 0,0,56,15,2,0,168,0,0,0,0,0,0,0,5,0,0,0,67,0,79,0,78,0,79,0,85,0,84,0,36,0,0,0,0,0,0,0,0,0,240,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,255,3,0,0,0,0,0,0,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,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,14,229,38,21,123,203,219,63,0,0,0,0,0,0,0,0,0,0,0,0,120,203,219,63,0,0,0,0,0,0,0,0,53, - 149,113,40,55,169,168,62,0,0,0,0,0,0,0,0,0,0,0,80,19,68,211,63,0,0,0,0,0,0,0,0,37,62,98,222,63,239,3,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,63,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,96,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,63,0,0,0,0,0,0,0,0,85,85,85,85,85,85,213,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,63,0,0,0,0,0,0,0,0,154,153,153,153,153,153,201,63,0,0,0,0,0,0,0,0,85,85,85,85,85,85,197,63,0,0,0,0,0, - 0,0,0,0,0,0,0,0,248,143,192,0,0,0,0,0,0,0,0,253,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,238,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,241,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255, - 127,0,0,0,0,0,0,0,0,230,84,85,85,85,85,181,63,0,0,0,0,0,0,0,0,212,198,186,153,153,153,137,63,0,0,0,0,0,0,0,0,159,81,241,7,35,73,98,63,0,0,0,0,0,0,0,0,240,255,93,200,52,128,60,63,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, - 2,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,158,189,91,63,0,0,0,112,212,175,107,63,0,0,0,96,149,185,116,63,0,0,0,160,118,148,123,63,0,0,0,160,77,52,129,63,0,0,0,80,8,155,132,63,0,0,0,192,113,254,135,63,0,0,0,128,144,94,139,63,0,0,0,240, - 106,187,142,63,0,0,0,160,131,10,145,63,0,0,0,224,181,181,146,63,0,0,0,80,79,95,148,63,0,0,0,0,83,7,150,63,0,0,0,208,195,173,151,63,0,0,0,240,164,82,153,63,0,0,0,32,249,245,154,63,0,0,0,112,195,151,156,63,0,0,0,160,6,56,158,63,0,0,0,176,197,214, - 159,63,0,0,0,160,1,186,160,63,0,0,0,32,225,135,161,63,0,0,0,192,2,85,162,63,0,0,0,192,103,33,163,63,0,0,0,144,17,237,163,63,0,0,0,128,1,184,164,63,0,0,0,224,56,130,165,63,0,0,0,16,185,75,166,63,0,0,0,64,131,20,167,63,0,0,0,192,152,220,167,63, - 0,0,0,208,250,163,168,63,0,0,0,192,170,106,169,63,0,0,0,208,169,48,170,63,0,0,0,32,249,245,170,63,0,0,0,0,154,186,171,63,0,0,0,144,141,126,172,63,0,0,0,16,213,65,173,63,0,0,0,160,113,4,174,63,0,0,0,112,100,198,174,63,0,0,0,176,174,135,175,63, - 0,0,0,192,40,36,176,63,0,0,0,240,38,132,176,63,0,0,0,144,210,227,176,63,0,0,0,48,44,67,177,63,0,0,0,64,52,162,177,63,0,0,0,96,235,0,178,63,0,0,0,16,82,95,178,63,0,0,0,224,104,189,178,63,0,0,0,80,48,27,179,63,0,0,0,224,168,120,179,63,0,0,0,48, - 211,213,179,63,0,0,0,160,175,50,180,63,0,0,0,208,62,143,180,63,0,0,0,32,129,235,180,63,0,0,0,48,119,71,181,63,0,0,0,96,33,163,181,63,0,0,0,64,128,254,181,63,0,0,0,64,148,89,182,63,0,0,0,240,93,180,182,63,0,0,0,176,221,14,183,63,0,0,0,0,20,105, - 183,63,0,0,0,96,1,195,183,63,0,0,0,48,166,28,184,63,0,0,0,0,3,118,184,63,0,0,0,48,24,207,184,63,0,0,0,64,230,39,185,63,0,0,0,144,109,128,185,63,0,0,0,160,174,216,185,63,0,0,0,208,169,48,186,63,0,0,0,160,95,136,186,63,0,0,0,112,208,223,186,63, - 0,0,0,176,252,54,187,63,0,0,0,208,228,141,187,63,0,0,0,48,137,228,187,63,0,0,0,64,234,58,188,63,0,0,0,112,8,145,188,63,0,0,0,16,228,230,188,63,0,0,0,160,125,60,189,63,0,0,0,128,213,145,189,63,0,0,0,0,236,230,189,63,0,0,0,160,193,59,190,63,0, - 0,0,176,86,144,190,63,0,0,0,160,171,228,190,63,0,0,0,192,192,56,191,63,0,0,0,128,150,140,191,63,0,0,0,48,45,224,191,63,0,0,0,160,194,25,192,63,0,0,0,112,79,67,192,63,0,0,0,96,189,108,192,63,0,0,0,128,12,150,192,63,0,0,0,0,61,191,192,63,0,0,0, - 16,79,232,192,63,0,0,0,240,66,17,193,63,0,0,0,160,24,58,193,63,0,0,0,128,208,98,193,63,0,0,0,144,106,139,193,63,0,0,0,16,231,179,193,63,0,0,0,48,70,220,193,63,0,0,0,16,136,4,194,63,0,0,0,224,172,44,194,63,0,0,0,208,180,84,194,63,0,0,0,240,159, - 124,194,63,0,0,0,128,110,164,194,63,0,0,0,176,32,204,194,63,0,0,0,144,182,243,194,63,0,0,0,80,48,27,195,63,0,0,0,32,142,66,195,63,0,0,0,32,208,105,195,63,0,0,0,128,246,144,195,63,0,0,0,96,1,184,195,63,0,0,0,224,240,222,195,63,0,0,0,48,197,5, - 196,63,0,0,0,112,126,44,196,63,0,0,0,208,28,83,196,63,0,0,0,112,160,121,196,63,0,0,0,112,9,160,196,63,0,0,0,0,88,198,196,63,0,0,0,48,140,236,196,63,0,0,0,64,166,18,197,63,0,0,0,48,166,56,197,63,0,0,0,80,140,94,197,63,0,0,0,144,88,132,197,63, - 0,0,0,64,11,170,197,63,0,0,0,112,164,207,197,63,0,0,0,64,36,245,197,63,0,0,0,208,138,26,198,63,0,0,0,80,216,63,198,63,0,0,0,208,12,101,198,63,0,0,0,128,40,138,198,63,0,0,0,128,43,175,198,63,0,0,0,224,21,212,198,63,0,0,0,208,231,248,198,63,0, - 0,0,112,161,29,199,63,0,0,0,224,66,66,199,63,0,0,0,64,204,102,199,63,0,0,0,160,61,139,199,63,0,0,0,48,151,175,199,63,0,0,0,16,217,211,199,63,0,0,0,80,3,248,199,63,0,0,0,32,22,28,200,63,0,0,0,144,17,64,200,63,0,0,0,192,245,99,200,63,0,0,0,224, - 194,135,200,63,0,0,0,0,121,171,200,63,0,0,0,48,24,207,200,63,0,0,0,160,160,242,200,63,0,0,0,112,18,22,201,63,0,0,0,176,109,57,201,63,0,0,0,128,178,92,201,63,0,0,0,0,225,127,201,63,0,0,0,80,249,162,201,63,0,0,0,112,251,197,201,63,0,0,0,176,231, - 232,201,63,0,0,0,240,189,11,202,63,0,0,0,128,126,46,202,63,0,0,0,96,41,81,202,63,0,0,0,160,190,115,202,63,0,0,0,112,62,150,202,63,0,0,0,240,168,184,202,63,0,0,0,32,254,218,202,63,0,0,0,48,62,253,202,63,0,0,0,48,105,31,203,63,0,0,0,64,127,65, - 203,63,0,0,0,112,128,99,203,63,0,0,0,240,108,133,203,63,0,0,0,176,68,167,203,63,0,0,0,240,7,201,203,63,0,0,0,192,182,234,203,63,0,0,0,48,81,12,204,63,0,0,0,80,215,45,204,63,0,0,0,80,73,79,204,63,0,0,0,64,167,112,204,63,0,0,0,48,241,145,204,63, - 0,0,0,64,39,179,204,63,0,0,0,128,73,212,204,63,0,0,0,16,88,245,204,63,0,0,0,0,83,22,205,63,0,0,0,96,58,55,205,63,0,0,0,96,14,88,205,63,0,0,0,0,207,120,205,63,0,0,0,112,124,153,205,63,0,0,0,160,22,186,205,63,0,0,0,208,157,218,205,63,0,0,0,240, - 17,251,205,63,0,0,0,48,115,27,206,63,0,0,0,160,193,59,206,63,0,0,0,80,253,91,206,63,0,0,0,96,38,124,206,63,0,0,0,224,60,156,206,63,0,0,0,224,64,188,206,63,0,0,0,128,50,220,206,63,0,0,0,208,17,252,206,63,0,0,0,224,222,27,207,63,0,0,0,208,153, - 59,207,63,0,0,0,160,66,91,207,63,0,0,0,128,217,122,207,63,0,0,0,112,94,154,207,63,0,0,0,144,209,185,207,63,0,0,0,240,50,217,207,63,0,0,0,160,130,248,207,63,0,0,0,80,224,11,208,63,0,0,0,160,118,27,208,63,0,0,0,48,4,43,208,63,0,0,0,16,137,58,208, - 63,0,0,0,64,5,74,208,63,0,0,0,224,120,89,208,63,0,0,0,240,227,104,208,63,0,0,0,112,70,120,208,63,0,0,0,128,160,135,208,63,0,0,0,16,242,150,208,63,0,0,0,48,59,166,208,63,0,0,0,240,123,181,208,63,0,0,0,80,180,196,208,63,0,0,0,96,228,211,208,63, - 0,0,0,48,12,227,208,63,0,0,0,192,43,242,208,63,0,0,0,16,67,1,209,63,0,0,0,64,82,16,209,63,0,0,0,64,89,31,209,63,0,0,0,48,88,46,209,63,0,0,0,0,79,61,209,63,0,0,0,208,61,76,209,63,0,0,0,160,36,91,209,63,0,0,0,112,3,106,209,63,0,0,0,80,218,120, - 209,63,0,0,0,64,169,135,209,63,0,0,0,96,112,150,209,63,0,0,0,160,47,165,209,63,0,0,0,16,231,179,209,63,0,0,0,192,150,194,209,63,0,0,0,176,62,209,209,63,0,0,0,240,222,223,209,63,0,0,0,112,119,238,209,63,0,0,0,96,8,253,209,63,0,0,0,160,145,11, - 210,63,0,0,0,80,19,26,210,63,0,0,0,112,141,40,210,63,0,0,0,16,0,55,210,63,0,0,0,48,107,69,210,63,0,0,0,208,206,83,210,63,0,0,0,0,43,98,210,63,0,0,0,208,127,112,210,63,0,0,0,64,205,126,210,63,0,0,0,96,19,141,210,63,0,0,0,32,82,155,210,63,0,0, - 0,160,137,169,210,63,0,0,0,224,185,183,210,63,0,0,0,224,226,197,210,63,0,0,0,176,4,212,210,63,0,0,0,80,31,226,210,63,0,0,0,192,50,240,210,63,0,0,0,32,63,254,210,63,0,0,0,112,68,12,211,63,0,0,0,176,66,26,211,63,0,0,0,224,57,40,211,63,0,0,0,16, - 42,54,211,63,0,0,0,80,19,68,211,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,143,32,178,34,188,10,178,61,212,13,46,51,105,15,177,61,87,210,126,232,13,149,206,61,105,109,98,59,68,243,211,61,87,62,54,165,234,90,244,61,11,191,225,60,104,67,196,61,17,165, - 198,96,205,137,249,61,159,46,31,32,111,98,253,61,205,189,218,184,139,79,233,61,21,48,66,239,216,136,0,62,173,121,43,166,19,4,8,62,196,211,238,192,23,151,5,62,2,73,212,173,119,74,173,61,14,48,55,240,63,118,14,62,195,246,6,71,215,98,225,61,20, - 188,77,31,204,1,6,62,191,229,246,81,224,243,234,61,235,243,26,30,11,122,9,62,199,2,192,112,137,163,192,61,81,199,87,0,0,46,16,62,14,110,205,238,0,91,21,62,175,181,3,112,41,134,223,61,109,163,54,179,185,87,16,62,79,234,6,74,200,75,19,62,173,188, - 161,158,218,67,22,62,42,234,247,180,167,102,29,62,239,252,247,56,224,178,246,61,136,240,112,198,84,233,243,61,179,202,58,9,9,114,4,62,167,93,39,231,143,112,29,62,231,185,113,119,158,223,31,62,96,6,10,167,191,39,8,62,20,188,77,31,204,1,22,62, - 91,94,106,16,246,55,6,62,75,98,124,241,19,106,18,62,58,98,128,206,178,62,9,62,222,148,21,233,209,48,20,62,49,160,143,16,16,107,29,62,65,242,186,11,156,135,22,62,43,188,166,94,1,8,255,61,108,103,198,205,61,182,41,62,44,171,196,188,44,2,43,62, - 68,101,221,125,208,23,249,61,158,55,3,87,96,64,21,62,96,27,122,148,139,209,12,62,126,169,124,39,101,173,23,62,169,95,159,197,77,136,17,62,130,208,6,96,196,17,23,62,248,8,49,60,46,9,47,62,58,225,43,227,197,20,23,62,154,79,115,253,167,187,38,62, - 131,132,224,181,143,244,253,61,149,11,77,199,155,47,35,62,19,12,121,72,232,115,249,61,110,88,198,8,188,204,30,62,152,74,82,249,233,21,33,62,184,49,49,89,64,23,47,62,53,56,100,37,139,207,27,62,128,237,139,29,168,95,31,62,228,217,41,249,77,74, - 36,62,148,12,34,216,32,152,18,62,9,227,4,147,72,11,42,62,254,101,166,171,86,77,31,62,99,81,54,25,144,12,33,62,54,39,89,254,120,15,248,61,202,28,200,37,136,82,16,62,106,116,109,125,83,149,224,61,96,6,10,167,191,39,24,62,60,147,69,236,168,176, - 6,62,169,219,245,27,248,90,16,62,21,213,85,38,250,226,23,62,191,228,174,191,236,89,13,62,163,63,104,218,47,139,29,62,55,55,58,253,221,184,36,62,4,18,174,97,126,130,19,62,159,15,233,73,123,140,44,62,29,89,151,21,240,234,41,62,54,123,49,110,166, - 170,25,62,85,6,114,9,86,114,46,62,84,172,122,252,51,28,38,62,82,162,97,207,43,102,41,62,48,39,196,17,200,67,24,62,54,203,90,11,187,100,32,62,164,1,39,132,12,52,10,62,214,121,143,181,85,142,26,62,154,157,94,156,33,45,233,61,106,253,127,13,230, - 99,63,62,20,99,81,217,14,155,46,62,12,53,98,25,144,35,41,62,129,94,120,56,136,111,50,62,175,166,171,76,106,91,59,62,28,118,142,220,106,34,240,61,237,26,58,49,215,74,60,62,23,141,115,124,232,100,21,62,24,102,138,241,236,143,51,62,102,118,119, - 245,158,146,61,62,184,160,141,240,59,72,57,62,38,88,170,238,14,221,59,62,186,55,2,89,221,196,57,62,199,202,235,224,233,243,26,62,172,13,39,130,83,206,53,62,186,185,42,83,116,79,57,62,84,134,136,149,39,52,7,62,240,75,227,11,0,90,12,62,130,208, - 6,96,196,17,39,62,248,140,237,180,37,0,37,62,160,210,242,206,139,209,46,62,84,117,10,12,46,40,33,62,202,167,89,51,243,112,13,62,37,64,168,19,126,127,43,62,30,137,33,195,110,48,51,62,80,117,139,3,248,199,63,62,100,29,215,140,53,176,62,62,116, - 148,133,34,200,118,58,62,227,134,222,82,198,14,61,62,175,88,134,224,204,164,47,62,158,10,192,210,162,132,59,62,209,91,194,242,176,165,32,62,153,246,91,34,96,214,61,62,55,240,155,133,15,177,8,62,225,203,144,181,35,136,62,62,246,150,30,243,17, - 19,54,62,154,15,162,92,135,31,46,62,165,185,57,73,114,149,44,62,226,88,62,122,149,5,56,62,52,3,159,234,38,241,47,62,9,86,142,89,245,83,57,62,72,196,86,248,111,193,54,62,244,97,242,15,34,203,36,62,162,83,61,213,32,225,53,62,86,242,137,97,127, - 82,58,62,15,156,212,255,252,86,56,62,218,215,40,130,46,12,48,62,224,223,68,148,208,19,241,61,166,89,234,14,99,16,37,62,17,215,50,15,120,46,38,62,207,248,16,26,217,62,237,61,133,205,75,126,74,101,35,62,33,173,128,73,120,91,5,62,100,110,177,212, - 45,47,33,62,12,245,57,217,173,196,55,62,252,128,113,98,132,23,40,62,97,73,225,199,98,81,234,61,99,81,54,25,144,12,49,62,136,118,161,43,77,60,55,62,129,61,233,224,165,232,42,62,175,33,22,240,198,176,42,62,102,91,221,116,139,30,48,62,148,84,187, - 236,111,32,45,62,0,204,79,114,139,180,240,61,41,226,97,11,31,131,63,62,175,188,7,196,151,26,248,61,170,183,203,28,108,40,62,62,147,10,34,73,11,99,40,62,92,44,162,193,21,11,255,61,70,9,28,231,69,84,53,62,133,109,6,248,48,230,59,62,57,108,217, - 240,223,153,37,62,129,176,143,177,133,204,54,62,200,168,30,0,109,71,52,62,31,211,22,158,136,63,55,62,135,42,121,13,16,87,51,62,246,1,97,174,121,209,59,62,226,246,195,86,16,163,12,62,251,8,156,98,112,40,61,62,63,103,210,128,56,186,58,62,166,125, - 41,203,51,54,44,62,2,234,239,153,56,132,33,62,230,8,32,157,201,204,59,62,80,211,189,68,5,0,56,62,225,106,96,38,194,145,43,62,223,43,182,38,223,122,42,62,201,110,130,200,79,118,24,62,240,104,15,229,61,79,31,62,227,149,121,117,202,96,247,61,71, - 81,128,211,126,102,252,61,111,223,106,25,246,51,55,62,107,131,62,243,16,183,47,62,19,16,100,186,110,136,57,62,26,140,175,208,104,83,251,61,113,41,141,27,105,140,53,62,251,8,109,34,101,148,254,61,151,0,63,6,126,88,51,62,24,159,18,2,231,24,54, - 62,84,172,122,252,51,28,54,62,74,96,8,132,166,7,63,62,33,84,148,228,191,52,60,62,11,48,65,14,240,177,56,62,99,27,214,132,66,67,63,62,54,116,57,94,9,99,58,62,222,25,185,86,134,66,52,62,166,217,178,1,146,202,54,62,28,147,42,58,130,56,39,62,48, - 146,23,14,136,17,60,62,254,82,109,141,220,61,49,62,23,233,34,137,213,238,51,62,80,221,107,132,146,89,41,62,139,39,46,95,77,219,13,62,196,53,6,42,241,165,241,61,52,60,44,136,240,66,70,62,94,71,246,167,155,238,42,62,228,96,74,131,127,75,38,62, - 46,121,67,226,66,13,41,62,1,79,19,8,32,39,76,62,91,207,214,22,46,120,74,62,72,102,218,121,92,80,68,62,33,205,77,234,212,169,76,62,188,213,124,98,61,125,41,62,19,170,188,249,92,177,32,62,221,118,207,99,32,91,49,62,72,39,170,243,230,131,41,62, - 148,233,255,244,100,76,63,62,15,90,232,124,186,190,70,62,184,166,78,253,105,156,59,62,171,164,95,131,165,106,43,62,209,237,15,121,195,204,67,62,224,79,64,196,76,192,41,62,157,216,117,122,75,115,64,62,18,22,224,196,4,68,27,62,148,72,206,194,101, - 197,64,62,205,53,217,65,20,199,51,62,78,59,107,85,146,164,114,61,67,220,65,3,9,250,32,62,244,217,227,9,112,143,46,62,69,138,4,139,246,27,75,62,86,169,250,223,82,238,62,62,189,101,228,0,9,107,69,62,102,118,119,245,158,146,77,62,96,226,55,134, - 162,110,72,62,240,162,12,241,175,101,70,62,116,236,72,175,253,17,47,62,199,209,164,134,27,190,76,62,101,118,168,254,91,176,37,62,29,74,26,10,194,206,65,62,159,155,64,10,95,205,65,62,112,80,38,200,86,54,69,62,96,34,40,53,216,126,55,62,210,185, - 64,48,188,23,36,62,242,239,121,123,239,142,64,62,233,87,220,57,111,199,77,62,87,244,12,167,147,4,76,62,12,166,165,206,214,131,74,62,186,87,197,13,112,214,48,62,10,189,232,18,108,201,68,62,21,35,227,147,25,44,61,62,66,130,95,19,33,199,34,62,125, - 116,218,77,62,154,39,62,43,167,65,105,159,248,252,61,49,8,241,2,167,73,33,62,219,117,129,124,75,173,78,62,10,231,99,254,48,105,78,62,47,238,217,190,6,225,65,62,146,28,241,130,43,104,45,62,124,164,219,136,241,7,58,62,246,114,193,45,52,249,64, - 62,37,62,98,222,63,239,3,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,32,224,31,224,31,224,255,63,240,7,252,1,127,192,255,63,18,250,1,170,28,161,255,63,32,248,129,31,248,129,255,63,181,219,160,172,16,99,255,63,113,66,74,158,101,68,255,63,181,10,35,68, - 246,37,255,63,8,31,124,240,193,7,255,63,2,142,69,248,199,233,254,63,192,236,1,179,7,204,254,63,235,1,186,122,128,174,254,63,103,183,240,171,49,145,254,63,228,80,151,165,26,116,254,63,116,229,1,201,58,87,254,63,115,26,220,121,145,58,254,63,30, - 30,30,30,30,30,254,63,30,224,1,30,224,1,254,63,138,134,248,227,214,229,253,63,202,29,160,220,1,202,253,63,219,129,185,118,96,174,253,63,138,127,30,35,242,146,253,63,52,44,184,84,182,119,253,63,178,114,117,128,172,92,253,63,29,212,65,29,212,65, - 253,63,26,91,252,163,44,39,253,63,116,192,110,143,181,12,253,63,198,191,68,92,110,242,252,63,11,155,3,137,86,216,252,63,231,203,1,150,109,190,252,63,145,225,94,5,179,164,252,63,66,138,251,90,38,139,252,63,28,199,113,28,199,113,252,63,134,73, - 13,209,148,88,252,63,240,248,195,1,143,63,252,63,28,160,46,57,181,38,252,63,224,192,129,3,7,14,252,63,139,141,134,238,131,245,251,63,247,6,148,137,43,221,251,63,123,62,136,101,253,196,251,63,208,186,193,20,249,172,251,63,35,255,24,43,30,149, - 251,63,139,51,218,61,108,125,251,63,5,238,190,227,226,101,251,63,79,27,232,180,129,78,251,63,206,6,216,74,72,55,251,63,217,128,108,64,54,32,251,63,164,34,217,49,75,9,251,63,40,175,161,188,134,242,250,63,94,144,148,127,232,219,250,63,27,112,197, - 26,112,197,250,63,253,235,135,47,29,175,250,63,190,99,106,96,239,152,250,63,89,225,48,81,230,130,250,63,109,26,208,166,1,109,250,63,74,138,104,7,65,87,250,63,26,164,65,26,164,65,250,63,160,28,197,135,42,44,250,63,2,75,122,249,211,22,250,63,26, - 160,1,26,160,1,250,63,217,51,16,149,142,236,249,63,45,104,107,23,159,215,249,63,2,161,228,78,209,194,249,63,218,16,85,234,36,174,249,63,154,153,153,153,153,153,249,63,255,192,142,13,47,133,249,63,114,184,12,248,228,112,249,63,174,119,227,11, - 187,92,249,63,224,233,214,252,176,72,249,63,230,44,155,127,198,52,249,63,41,226,208,73,251,32,249,63,213,144,1,18,79,13,249,63,250,24,156,143,193,249,248,63,63,55,241,122,82,230,248,63,211,24,48,141,1,211,248,63,58,255,98,128,206,191,248,63, - 170,243,107,15,185,172,248,63,156,137,1,246,192,153,248,63,74,176,171,240,229,134,248,63,185,146,192,188,39,116,248,63,24,134,97,24,134,97,248,63,20,6,120,194,0,79,248,63,221,190,178,122,151,60,248,63,160,164,130,1,74,42,248,63,24,24,24,24,24, - 24,248,63,6,24,96,128,1,6,248,63,64,127,1,253,5,244,247,63,29,79,90,81,37,226,247,63,244,5,125,65,95,208,247,63,124,1,46,146,179,190,247,63,195,236,224,8,34,173,247,63,139,57,182,107,170,155,247,63,200,164,120,129,76,138,247,63,13,198,154,17, - 8,121,247,63,177,169,52,228,220,103,247,63,109,117,1,194,202,86,247,63,70,23,93,116,209,69,247,63,141,254,65,197,240,52,247,63,188,222,70,127,40,36,247,63,9,124,156,109,120,19,247,63,112,129,11,92,224,2,247,63,23,96,242,22,96,242,246,63,199, - 55,67,107,247,225,246,63,97,200,129,38,166,209,246,63,23,108,193,22,108,193,246,63,61,26,163,10,73,177,246,63,144,114,83,209,60,161,246,63,192,208,136,58,71,145,246,63,23,104,129,22,104,129,246,63,26,103,1,54,159,113,246,63,249,34,81,106,236, - 97,246,63,163,74,59,133,79,82,246,63,100,33,11,89,200,66,246,63,222,192,138,184,86,51,246,63,64,98,1,119,250,35,246,63,148,174,49,104,179,20,246,63,6,22,88,96,129,5,246,63,252,45,41,52,100,246,245,63,231,21,208,184,91,231,245,63,165,226,236, - 195,103,216,245,63,87,16,147,43,136,201,245,63,145,250,71,198,188,186,245,63,192,90,1,107,5,172,245,63,170,204,35,241,97,157,245,63,237,88,129,48,210,142,245,63,96,5,88,1,86,128,245,63,58,107,80,60,237,113,245,63,226,82,124,186,151,99,245,63, - 85,85,85,85,85,85,245,63,254,130,187,230,37,71,245,63,235,15,244,72,9,57,245,63,75,5,168,86,255,42,245,63,21,248,226,234,7,29,245,63,197,196,17,225,34,15,245,63,21,80,1,21,80,1,245,63,155,76,221,98,143,243,244,63,57,5,47,167,224,229,244,63,76, - 44,220,190,67,216,244,63,110,175,37,135,184,202,244,63,225,143,166,221,62,189,244,63,91,191,82,160,214,175,244,63,74,1,118,173,127,162,244,63,103,208,178,227,57,149,244,63,128,72,1,34,5,136,244,63,123,20,174,71,225,122,244,63,102,96,89,52,206, - 109,244,63,154,207,245,199,203,96,244,63,202,118,199,226,217,83,244,63,251,217,98,101,248,70,244,63,77,238,171,48,39,58,244,63,135,31,213,37,102,45,244,63,81,89,94,38,181,32,244,63,20,20,20,20,20,20,244,63,102,101,14,209,130,7,244,63,251,19, - 176,63,1,251,243,63,7,175,165,66,143,238,243,63,2,169,228,188,44,226,243,63,198,117,170,145,217,213,243,63,231,171,123,164,149,201,243,63,85,41,35,217,96,189,243,63,20,59,177,19,59,177,243,63,34,200,122,56,36,165,243,63,99,127,24,44,28,153,243, - 63,142,8,102,211,34,141,243,63,20,56,129,19,56,129,243,63,238,69,201,209,91,117,243,63,72,7,222,243,141,105,243,63,248,42,159,95,206,93,243,63,193,120,43,251,28,82,243,63,70,19,224,172,121,70,243,63,178,188,87,91,228,58,243,63,250,29,106,237, - 92,47,243,63,191,16,43,74,227,35,243,63,182,235,233,88,119,24,243,63,144,209,48,1,25,13,243,63,96,2,196,42,200,1,243,63,104,47,161,189,132,246,242,63,75,209,254,161,78,235,242,63,151,128,75,192,37,224,242,63,160,80,45,1,10,213,242,63,160,44, - 129,77,251,201,242,63,17,55,90,142,249,190,242,63,64,43,1,173,4,180,242,63,5,193,243,146,28,169,242,63,158,18,228,41,65,158,242,63,165,4,184,91,114,147,242,63,19,176,136,18,176,136,242,63,77,206,161,56,250,125,242,63,53,39,129,184,80,115,242, - 63,39,1,214,124,179,104,242,63,241,146,128,112,34,94,242,63,178,119,145,126,157,83,242,63,146,36,73,146,36,73,242,63,91,96,23,151,183,62,242,63,223,188,154,120,86,52,242,63,42,18,160,34,1,42,242,63,120,251,33,129,183,31,242,63,230,85,72,128, - 121,21,242,63,217,192,103,12,71,11,242,63,18,32,1,18,32,1,242,63,112,31,193,125,4,247,241,63,76,184,127,60,244,236,241,63,116,184,63,59,239,226,241,63,189,74,46,103,245,216,241,63,29,129,162,173,6,207,241,63,89,224,28,252,34,197,241,63,41,237, - 70,64,74,187,241,63,227,186,242,103,124,177,241,63,150,123,26,97,185,167,241,63,158,17,224,25,1,158,241,63,156,162,140,128,83,148,241,63,219,43,144,131,176,138,241,63,18,24,129,17,24,129,241,63,132,214,27,25,138,119,241,63,121,115,66,137,6,110, - 241,63,1,50,252,80,141,100,241,63,13,39,117,95,30,91,241,63,201,213,253,163,185,81,241,63,59,205,10,14,95,72,241,63,36,71,52,141,14,63,241,63,17,200,53,17,200,53,241,63,172,192,237,137,139,44,241,63,51,48,93,231,88,35,241,63,38,72,167,25,48, - 26,241,63,17,17,17,17,17,17,241,63,128,16,1,190,251,7,241,63,17,240,254,16,240,254,240,63,162,37,179,250,237,245,240,63,144,156,230,107,245,236,240,63,17,96,130,85,6,228,240,63,150,70,143,168,32,219,240,63,58,158,53,86,68,210,240,63,59,218,188, - 79,113,201,240,63,113,65,139,134,167,192,240,63,200,157,37,236,230,183,240,63,181,236,46,114,47,175,240,63,167,16,104,10,129,166,240,63,96,131,175,166,219,157,240,63,84,9,1,57,63,149,240,63,226,101,117,179,171,140,240,63,132,16,66,8,33,132,240, - 63,226,234,184,41,159,123,240,63,198,247,71,10,38,115,240,63,251,18,121,156,181,106,240,63,252,169,241,210,77,98,240,63,134,117,114,160,238,89,240,63,4,52,215,247,151,81,240,63,197,100,22,204,73,73,240,63,16,4,65,16,4,65,240,63,252,71,130,183, - 198,56,240,63,26,94,31,181,145,48,240,63,233,41,119,252,100,40,240,63,8,4,2,129,64,32,240,63,55,122,81,54,36,24,240,63,16,16,16,16,16,16,240,63,128,0,1,2,4,8,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,0,0,108,111,103,49,48,0,0,0,0,0,0,0,0,0,0,0,255, - 255,255,255,255,255,63,67,255,255,255,255,255,255,63,195,176,43,0,128,1,0,0,0,192,43,0,128,1,0,0,0,224,43,0,128,1,0,0,0,64,44,0,128,1,0,0,0,48,45,0,128,1,0,0,0,0,0,0,0,0,0,0,0,176,43,0,128,1,0,0,0,192,43,0,128,1,0,0,0,224,43,0,128,1,0,0,0,128, - 104,0,128,1,0,0,0,128,45,0,128,1,0,0,0,0,0,0,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,69,0,66,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,0,0,0,0,0,0,69,0,66,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,92,0,120,0,54, - 0,52,0,92,0,69,0,109,0,98,0,101,0,100,0,100,0,101,0,100,0,66,0,114,0,111,0,119,0,115,0,101,0,114,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,46,0,100,0,108,0,108,0,0,0,123,0,70,0,51,0,48,0,49,0,55,0,50,0,50,0,54,0,45,0,70,0,69,0,50,0,65,0,45,0, - 52,0,50,0,57,0,53,0,45,0,56,0,66,0,68,0,70,0,45,0,48,0,48,0,67,0,51,0,65,0,57,0,65,0,55,0,69,0,52,0,67,0,53,0,125,0,0,0,123,0,50,0,67,0,68,0,56,0,65,0,48,0,48,0,55,0,45,0,69,0,49,0,56,0,57,0,45,0,52,0,48,0,57,0,68,0,45,0,65,0,50,0,67,0,56,0, - 45,0,57,0,65,0,70,0,52,0,69,0,70,0,51,0,67,0,55,0,50,0,65,0,65,0,125,0,0,0,123,0,48,0,68,0,53,0,48,0,66,0,70,0,69,0,67,0,45,0,67,0,68,0,54,0,65,0,45,0,52,0,70,0,57,0,65,0,45,0,57,0,54,0,52,0,67,0,45,0,67,0,55,0,52,0,49,0,54,0,69,0,51,0,65,0, - 67,0,66,0,49,0,48,0,125,0,0,0,123,0,54,0,53,0,67,0,51,0,53,0,66,0,49,0,52,0,45,0,54,0,67,0,49,0,68,0,45,0,52,0,49,0,50,0,50,0,45,0,65,0,67,0,52,0,54,0,45,0,55,0,49,0,52,0,56,0,67,0,67,0,57,0,68,0,54,0,52,0,57,0,55,0,125,0,0,0,123,0,66,0,69,0, - 53,0,57,0,69,0,56,0,70,0,68,0,45,0,48,0,56,0,57,0,65,0,45,0,52,0,49,0,49,0,66,0,45,0,65,0,51,0,66,0,48,0,45,0,48,0,53,0,49,0,68,0,57,0,69,0,52,0,49,0,55,0,56,0,49,0,56,0,125,0,0,0,83,0,111,0,102,0,116,0,119,0,97,0,114,0,101,0,92,0,77,0,105,0, - 99,0,114,0,111,0,115,0,111,0,102,0,116,0,92,0,69,0,100,0,103,0,101,0,85,0,112,0,100,0,97,0,116,0,101,0,92,0,67,0,108,0,105,0,101,0,110,0,116,0,115,0,92,0,123,0,53,0,54,0,69,0,66,0,49,0,56,0,70,0,56,0,45,0,66,0,48,0,48,0,56,0,45,0,52,0,67,0,66, - 0,68,0,45,0,66,0,54,0,68,0,50,0,45,0,56,0,67,0,57,0,55,0,70,0,69,0,55,0,69,0,57,0,48,0,54,0,50,0,125,0,0,0,0,0,0,0,0,0,83,0,111,0,102,0,116,0,119,0,97,0,114,0,101,0,92,0,77,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,92,0,69,0,100,0,103, - 0,101,0,85,0,112,0,100,0,97,0,116,0,101,0,92,0,67,0,108,0,105,0,101,0,110,0,116,0,83,0,116,0,97,0,116,0,101,0,92,0,0,0,0,0,98,0,101,0,116,0,97,0,0,0,100,0,101,0,118,0,0,0,99,0,97,0,110,0,97,0,114,0,121,0,0,0,105,0,110,0,116,0,101,0,114,0,110, - 0,97,0,108,0,0,0,92,0,0,0,87,101,98,86,105,101,119,50,58,32,70,97,105,108,101,100,32,116,111,32,102,105,110,100,32,116,104,101,32,97,112,112,32,101,120,101,32,112,97,116,104,46,10,0,87,101,98,86,105,101,119,50,58,32,70,97,105,108,101,100,32, - 116,111,32,102,105,110,100,32,116,104,101,32,87,101,98,86,105,101,119,50,32,99,108,105,101,110,116,32,100,108,108,32,97,116,58,32,0,10,0,71,101,116,70,105,108,101,86,101,114,115,105,111,110,73,110,102,111,83,105,122,101,87,0,71,101,116,70,105, - 108,101,86,101,114,115,105,111,110,73,110,102,111,87,0,86,101,114,81,117,101,114,121,86,97,108,117,101,87,0,0,92,0,83,0,116,0,114,0,105,0,110,0,103,0,70,0,105,0,108,0,101,0,73,0,110,0,102,0,111,0,92,0,48,0,52,0,48,0,57,0,48,0,52,0,66,0,48,0, - 92,0,80,0,114,0,111,0,100,0,117,0,99,0,116,0,86,0,101,0,114,0,115,0,105,0,111,0,110,0,0,0,0,0,76,57,162,14,230,150,227,74,143,154,132,115,171,239,55,50,32,0,0,0,87,101,98,86,105,101,119,50,58,32,70,97,105,108,101,100,32,116,111,32,102,105,110, - 100,32,97,110,32,105,110,115,116,97,108,108,101,100,32,87,101,98,86,105,101,119,50,32,114,117,110,116,105,109,101,32,111,114,32,110,111,110,45,115,116,97,98,108,101,32,77,105,99,114,111,115,111,102,116,32,69,100,103,101,32,105,110,115,116,97, - 108,108,97,116,105,111,110,46,10,0,0,159,83,141,196,159,227,28,68,174,104,31,102,229,112,189,197,87,101,98,86,105,101,119,50,58,32,115,107,105,112,112,101,100,32,105,110,97,99,99,101,115,115,105,98,108,101,32,0,97,0,112,0,105,0,45,0,109,0,115, - 0,45,0,119,0,105,0,110,0,45,0,99,0,111,0,114,0,101,0,45,0,118,0,101,0,114,0,115,0,105,0,111,0,110,0,45,0,108,0,49,0,45,0,49,0,45,0,48,0,46,0,100,0,108,0,108,0,0,0,118,0,101,0,114,0,115,0,105,0,111,0,110,0,46,0,100,0,108,0,108,0,0,0,77,0,105, - 0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,46,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,50,0,82,0,117,0,110,0,116,0,105,0,109,0,101,0,46,0,83,0,116,0,97,0,98,0,108,0,101,0,95,0,56,0,119,0,101,0,107,0,121,0,98,0,51,0,100,0,56,0,98,0,98,0,119,0, - 101,0,0,0,77,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,46,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,50,0,82,0,117,0,110,0,116,0,105,0,109,0,101,0,46,0,66,0,101,0,116,0,97,0,95,0,56,0,119,0,101,0,107,0,121,0,98,0,51,0,100,0,56,0,98,0,98, - 0,119,0,101,0,0,0,77,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,46,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,50,0,82,0,117,0,110,0,116,0,105,0,109,0,101,0,46,0,68,0,101,0,118,0,95,0,56,0,119,0,101,0,107,0,121,0,98,0,51,0,100,0,56,0,98,0, - 98,0,119,0,101,0,0,0,77,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,46,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,50,0,82,0,117,0,110,0,116,0,105,0,109,0,101,0,46,0,67,0,97,0,110,0,97,0,114,0,121,0,95,0,56,0,119,0,101,0,107,0,121,0,98,0,51, - 0,100,0,56,0,98,0,98,0,119,0,101,0,0,0,77,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,46,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,50,0,82,0,117,0,110,0,116,0,105,0,109,0,101,0,46,0,73,0,110,0,116,0,101,0,114,0,110,0,97,0,108,0,95,0,56,0, - 119,0,101,0,107,0,121,0,98,0,51,0,100,0,56,0,98,0,98,0,119,0,101,0,0,0,0,0,108,0,111,0,99,0,97,0,116,0,105,0,111,0,110,0,0,0,0,0,112,0,118,0,0,0,0,0,0,0,0,0,86,0,0,0,0,0,0,0,104,2,0,0,0,0,0,0,87,101,98,86,105,101,119,50,58,32,115,107,105,112, - 112,101,100,32,97,110,32,105,110,99,111,109,112,97,116,105,98,108,101,32,118,101,114,115,105,111,110,32,0,0,46,0,0,0,84,114,121,67,114,101,97,116,101,80,97,99,107,97,103,101,68,101,112,101,110,100,101,110,99,121,0,0,107,0,101,0,114,0,110,0,101, - 0,108,0,98,0,97,0,115,0,101,0,46,0,100,0,108,0,108,0,0,0,65,100,100,80,97,99,107,97,103,101,68,101,112,101,110,100,101,110,99,121,0,71,101,116,67,117,114,114,101,110,116,80,97,99,107,97,103,101,73,110,102,111,0,0,65,0,68,0,86,0,65,0,80,0,73, - 0,51,0,50,0,46,0,100,0,108,0,108,0,0,0,69,118,101,110,116,82,101,103,105,115,116,101,114,0,0,0,94,117,109,185,25,3,146,78,162,150,35,67,111,70,161,252,71,101,116,67,117,114,114,101,110,116,65,112,112,108,105,99,97,116,105,111,110,85,115,101, - 114,77,111,100,101,108,73,100,0,0,75,0,101,0,114,0,110,0,101,0,108,0,51,0,50,0,46,0,100,0,108,0,108,0,0,0,66,0,114,0,111,0,119,0,115,0,101,0,114,0,69,0,120,0,101,0,99,0,117,0,116,0,97,0,98,0,108,0,101,0,70,0,111,0,108,0,100,0,101,0,114,0,0,0, - 87,0,69,0,66,0,86,0,73,0,69,0,87,0,50,0,95,0,66,0,82,0,79,0,87,0,83,0,69,0,82,0,95,0,69,0,88,0,69,0,67,0,85,0,84,0,65,0,66,0,76,0,69,0,95,0,70,0,79,0,76,0,68,0,69,0,82,0,0,0,85,0,115,0,101,0,114,0,68,0,97,0,116,0,97,0,70,0,111,0,108,0,100,0, - 101,0,114,0,0,0,87,0,69,0,66,0,86,0,73,0,69,0,87,0,50,0,95,0,85,0,83,0,69,0,82,0,95,0,68,0,65,0,84,0,65,0,95,0,70,0,79,0,76,0,68,0,69,0,82,0,0,0,82,0,101,0,108,0,101,0,97,0,115,0,101,0,67,0,104,0,97,0,110,0,110,0,101,0,108,0,115,0,0,0,87,0,69, - 0,66,0,86,0,73,0,69,0,87,0,50,0,95,0,82,0,69,0,76,0,69,0,65,0,83,0,69,0,95,0,67,0,72,0,65,0,78,0,78,0,69,0,76,0,83,0,0,0,67,0,104,0,97,0,110,0,110,0,101,0,108,0,83,0,101,0,97,0,114,0,99,0,104,0,75,0,105,0,110,0,100,0,0,0,87,0,69,0,66,0,86,0, - 73,0,69,0,87,0,50,0,95,0,67,0,72,0,65,0,78,0,78,0,69,0,76,0,95,0,83,0,69,0,65,0,82,0,67,0,72,0,95,0,75,0,73,0,78,0,68,0,0,0,82,0,101,0,108,0,101,0,97,0,115,0,101,0,67,0,104,0,97,0,110,0,110,0,101,0,108,0,80,0,114,0,101,0,102,0,101,0,114,0,101, - 0,110,0,99,0,101,0,0,0,87,0,69,0,66,0,86,0,73,0,69,0,87,0,50,0,95,0,82,0,69,0,76,0,69,0,65,0,83,0,69,0,95,0,67,0,72,0,65,0,78,0,78,0,69,0,76,0,95,0,80,0,82,0,69,0,70,0,69,0,82,0,69,0,78,0,67,0,69,0,0,0,115,0,104,0,101,0,108,0,108,0,51,0,50,0, - 46,0,100,0,108,0,108,0,0,0,71,101,116,67,117,114,114,101,110,116,80,114,111,99,101,115,115,69,120,112,108,105,99,105,116,65,112,112,85,115,101,114,77,111,100,101,108,73,68,0,83,0,111,0,102,0,116,0,119,0,97,0,114,0,101,0,92,0,80,0,111,0,108,0, - 105,0,99,0,105,0,101,0,115,0,92,0,77,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,92,0,69,0,100,0,103,0,101,0,92,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,50,0,92,0,0,0,0,0,42,0,0,0,87,0,69,0,66,0,86,0,73,0,69,0,87,0,50,0,95,0,85,0,83,0,69, - 0,95,0,69,0,68,0,71,0,69,0,95,0,86,0,73,0,69,0,87,0,0,0,49,0,0,0,0,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,0,67,114,101,97,116,101,87,101,98,86,105,101,119,69,110,118,105,114,111,110,109,101,110,116,87,105,116,104,79,112,116,105,111, - 110,115,73,110,116,101,114,110,97,108,0,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,50,0,58,0,32,0,67,0,111,0,114,0,101,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,50,0,69,0,110,0,118,0,105,0,114,0,111,0,110,0,109,0,101,0,110,0,116,0,32,0,102,0,97, - 0,105,0,108,0,101,0,100,0,32,0,119,0,104,0,101,0,110,0,32,0,116,0,114,0,121,0,105,0,110,0,103,0,32,0,116,0,111,0,32,0,99,0,97,0,108,0,108,0,32,0,105,0,110,0,116,0,111,0,32,0,69,0,109,0,98,0,101,0,100,0,100,0,101,0,100,0,66,0,114,0,111,0,119, - 0,115,0,101,0,114,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,46,0,100,0,108,0,108,0,46,0,32,0,104,0,114,0,61,0,48,0,120,0,0,0,10,0,0,0,68,108,108,67,97,110,85,110,108,111,97,100,78,111,119,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,50,0,58,0,32, - 0,67,0,111,0,114,0,101,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,50,0,69,0,110,0,118,0,105,0,114,0,111,0,110,0,109,0,101,0,110,0,116,0,32,0,102,0,97,0,105,0,108,0,101,0,100,0,32,0,119,0,104,0,101,0,110,0,32,0,116,0,114,0,121,0,105,0,110,0,103, - 0,32,0,116,0,111,0,32,0,76,0,111,0,97,0,100,0,76,0,105,0,98,0,114,0,97,0,114,0,121,0,58,0,32,0,104,0,114,0,61,0,48,0,120,0,0,0,32,0,112,0,97,0,116,0,104,0,61,0,0,0,0,0,0,144,2,128,1,0,0,0,8,144,2,128,1,0,0,0,244,43,2,128,1,0,0,0,168,241,1,128, - 1,0,0,0,0,0,0,0,0,0,48,0,1,0,0,0,0,0,0,0,0,0,0,0,80,42,2,0,232,231,1,0,192,231,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,232,1,0,0,0,0,0,0,0,0,0,16,232,1,0,0,0,0,0,0,0,0,0,0,0,0,0,80,42,2,0,0,0,0,0,0,0,0,0,255,255,255,255, - 0,0,0,0,64,0,0,0,232,231,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,40,42,2,0,96,232,1,0,56,232,1,0,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,0,0,120,232,1,0,0,0,0,0,0,0,0,0,144,232,1,0,16,232,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,40,42,2,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,64,0,0,0,96,232,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,120,42,2,0,224,232,1,0,184,232,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,248,232,1,0,0,0,0,0,0,0,0, - 0,24,233,1,0,144,232,1,0,16,232,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,120,42,2,0,2,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,64,0,0,0,224,232,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,208,42,2,0,104,233,1,0,64,233,1,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,128,233,1,0,0,0,0,0,0,0,0,0,144,233,1,0,0,0,0,0,0,0,0,0,0,0,0,0,208,42,2,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,64,0,0,0,104,233,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,168,42,2,0,224, - 233,1,0,184,233,1,0,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,0,0,248,233,1,0,0,0,0,0,0,0,0,0,16,234,1,0,16,232,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,168,42,2,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,64,0,0,0,224,233,1,0,0,0,0,0,0,0, - 0,0,0,0,0,0,69,84,87,48,16,0,0,1,134,14,4,136,43,5,138,187,6,11,2,0,0,0,0,0,0,64,0,0,95,0,0,67,114,101,97,116,101,87,101,98,86,105,101,119,69,110,118,105,114,111,110,109,101,110,116,69,114,114,111,114,0,72,82,69,83,85,76,84,0,135,15,67,108,105, - 101,110,116,68,108,108,70,111,117,110,100,0,132,3,73,110,115,116,97,108,108,101,100,82,117,110,116,105,109,101,0,132,3,80,97,114,116,65,95,80,114,105,118,84,97,103,115,0,10,4,126,221,29,149,255,242,63,91,113,55,226,241,160,221,152,4,52,0,77, - 105,99,114,111,115,111,102,116,46,77,83,69,100,103,101,87,101,98,86,105,101,119,46,76,111,97,100,101,114,0,19,0,1,26,115,80,79,207,137,130,71,179,224,220,232,201,4,118,186,1,0,0,0,1,10,5,0,10,130,6,2,4,2,2,2,1,2,0,0,0,0,0,0,88,207,211,101,0, - 0,0,0,2,0,0,0,80,0,0,0,96,235,1,0,96,223,1,0,0,0,0,0,88,207,211,101,0,0,0,0,13,0,0,0,52,4,0,0,176,235,1,0,176,223,1,0,0,0,0,0,88,207,211,101,0,0,0,0,20,0,0,0,4,0,0,0,228,239,1,0,228,227,1,0,82,83,68,83,233,130,234,112,182,120,41,148,76,76,68, - 32,80,68,66,46,1,0,0,0,68,58,92,97,92,95,119,111,114,107,92,101,92,115,114,99,92,111,117,116,92,82,101,108,101,97,115,101,95,120,54,52,92,87,101,98,86,105,101,119,50,76,111,97,100,101,114,46,100,108,108,46,112,100,98,0,0,79,71,80,0,16,0,0,88, - 47,0,0,46,116,101,120,116,36,116,101,120,116,0,0,173,63,0,0,6,0,0,0,46,116,101,120,116,36,95,48,50,0,0,0,180,63,0,0,217,19,1,0,46,116,101,120,116,36,109,110,0,0,0,0,192,87,1,0,43,0,0,0,46,116,101,120,116,36,109,110,36,48,48,0,246,87,1,0,118, - 6,0,0,46,116,101,120,116,36,120,0,0,16,0,0,30,1,0,0,46,116,101,120,116,0,0,0,0,96,1,0,72,127,0,0,46,114,100,97,116,97,36,114,100,97,116,97,0,0,0,0,152,231,1,0,40,0,0,0,46,114,100,97,116,97,36,84,0,0,0,0,192,231,1,0,40,2,0,0,46,114,100,97,116, - 97,36,114,0,0,0,0,56,234,1,0,16,0,0,0,46,114,100,97,116,97,36,122,69,84,87,48,0,0,0,0,72,234,1,0,107,0,0,0,46,114,100,97,116,97,36,122,69,84,87,49,0,0,0,0,179,234,1,0,69,0,0,0,46,114,100,97,116,97,36,122,69,84,87,50,0,0,0,0,248,234,1,0,1,0,0, - 0,46,114,100,97,116,97,36,122,69,84,87,57,0,0,0,0,40,241,1,0,56,0,0,0,46,48,48,99,102,103,0,0,96,241,1,0,8,0,0,0,46,67,82,84,36,88,67,65,0,0,0,0,104,241,1,0,8,0,0,0,46,67,82,84,36,88,67,90,0,0,0,0,112,241,1,0,8,0,0,0,46,67,82,84,36,88,73,65, - 0,0,0,0,120,241,1,0,32,0,0,0,46,67,82,84,36,88,73,67,0,0,0,0,152,241,1,0,8,0,0,0,46,67,82,84,36,88,73,90,0,0,0,0,160,241,1,0,8,0,0,0,46,67,82,84,36,88,76,65,0,0,0,0,168,241,1,0,8,0,0,0,46,67,82,84,36,88,76,90,0,0,0,0,176,241,1,0,8,0,0,0,46,67, - 82,84,36,88,80,65,0,0,0,0,184,241,1,0,16,0,0,0,46,67,82,84,36,88,80,88,0,0,0,0,200,241,1,0,8,0,0,0,46,67,82,84,36,88,80,88,65,0,0,0,208,241,1,0,8,0,0,0,46,67,82,84,36,88,80,90,0,0,0,0,216,241,1,0,8,0,0,0,46,67,82,84,36,88,84,65,0,0,0,0,224,241, - 1,0,8,0,0,0,46,67,82,84,36,88,84,90,0,0,0,0,161,244,1,0,40,0,0,0,46,105,100,97,116,97,36,50,0,0,0,0,208,244,1,0,184,2,0,0,46,105,100,97,116,97,36,52,0,0,0,0,136,247,1,0,184,2,0,0,46,105,100,97,116,97,36,53,0,0,0,0,64,250,1,0,46,6,0,0,46,105, - 100,97,116,97,36,54,0,0,0,0,110,0,2,0,13,0,0,0,46,105,100,97,116,97,36,55,0,0,0,0,128,0,2,0,8,0,0,0,46,114,116,99,36,73,65,65,0,0,0,0,136,0,2,0,8,0,0,0,46,114,116,99,36,73,90,90,0,0,0,0,144,0,2,0,8,0,0,0,46,114,116,99,36,84,65,65,0,0,0,0,152, - 0,2,0,8,0,0,0,46,114,116,99,36,84,90,90,0,0,0,0,160,0,2,0,192,18,0,0,46,120,100,97,116,97,0,0,136,19,2,0,40,1,0,0,46,120,100,97,116,97,36,120,0,0,0,0,0,96,1,0,225,8,0,0,46,114,100,97,116,97,0,0,0,32,2,0,197,9,0,0,46,100,97,116,97,36,100,97,116, - 97,0,0,40,42,2,0,159,0,0,0,46,100,97,116,97,36,114,0,208,42,2,0,32,0,0,0,46,100,97,116,97,36,114,115,0,0,0,0,96,43,2,0,66,18,0,0,46,98,115,115,0,0,0,0,0,32,2,0,112,0,0,0,46,100,97,116,97,0,0,0,0,64,2,0,244,20,0,0,46,112,100,97,116,97,36,112, - 100,97,116,97,0,0,0,0,0,64,2,0,24,0,0,0,46,112,100,97,116,97,0,0,0,96,2,0,176,16,0,0,46,103,120,102,103,36,121,0,0,128,2,0,128,0,0,0,46,114,101,116,112,108,110,101,36,114,101,116,112,108,110,101,0,0,0,0,0,144,2,0,1,0,0,0,46,116,108,115,36,116, - 108,115,0,0,0,0,4,144,2,0,4,0,0,0,46,116,108,115,36,0,0,0,8,144,2,0,1,0,0,0,46,116,108,115,36,90,90,90,0,0,0,0,0,160,2,0,88,1,0,0,95,82,68,65,84,65,36,82,68,65,84,65,0,0,0,0,0,176,2,0,88,0,0,0,46,114,115,114,99,36,48,49,0,0,0,0,96,176,2,0,40, - 5,0,0,46,114,115,114,99,36,48,50,0,0,0,0,1,0,0,0,149,16,0,0,176,33,0,0,144,38,0,0,160,38,0,0,208,39,0,0,64,41,0,0,176,43,0,0,192,43,0,0,224,43,0,0,64,44,0,0,48,45,0,0,128,45,0,0,224,63,0,0,32,66,0,0,144,71,0,0,176,71,0,0,192,74,0,0,208,74,0, - 0,160,76,0,0,48,78,0,0,176,101,0,0,128,104,0,0,192,104,0,0,224,104,0,0,32,109,0,0,64,109,0,0,112,109,0,0,128,109,0,0,144,109,0,0,160,109,0,0,176,109,0,0,192,109,0,0,0,110,0,0,16,110,0,0,80,110,0,0,176,110,0,0,240,144,0,0,16,145,0,0,32,145,0, - 0,80,147,0,0,160,156,0,0,144,161,0,0,224,196,0,0,16,197,0,0,48,197,0,0,144,204,0,0,192,204,0,0,64,209,0,0,144,209,0,0,0,210,0,0,32,210,0,0,48,210,0,0,112,210,0,0,224,213,0,0,96,217,0,0,160,217,0,0,224,219,0,0,16,220,0,0,48,220,0,0,48,243,0,0, - 80,244,0,0,176,0,1,0,128,8,1,0,48,13,1,0,128,13,1,0,176,13,1,0,224,13,1,0,144,15,1,0,144,17,1,0,112,31,1,0,112,60,1,0,32,63,1,0,144,71,1,0,224,73,1,0,0,82,1,0,16,83,1,0,64,83,1,0,208,87,1,0,240,87,1,0,0,0,0,0,192,74,0,128,1,0,0,0,208,87,1,128, - 1,0,0,0,192,74,0,128,1,0,0,0,240,87,1,128,1,0,0,0,240,87,1,128,1,0,0,0,0,0,0,0,0,0,0,0,48,197,0,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,63,0,128,1,0,0,0,112,31,1,128,1,0,0,0,48,243,0,128,1,0,0,0,0,82,1,128,1,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,8,1,128,1,0,0,0,144,71,1,128,1,0,0,0,80,244,0,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,90,243,1,0,240,42,2,0,0,43,2,0,72,242,1,0,0,0,0,0,0,0,0,0,0,0,0, - 0,1,0,0,0,103,243,1,0,248,42,2,0,72,43,2,0,144,242,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,168,242,1,0,0,0,0,0,184,242,1,0,0,0,0,0,206,242,1,0,0,0,0,0,224,242,1,0,0,0,0,0,246,242,1,0,0,0,0, - 0,4,243,1,0,0,0,0,0,20,243,1,0,0,0,0,0,36,243,1,0,0,0,0,0,0,0,0,0,0,0,0,0,56,243,1,0,0,0,0,0,74,243,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,69,118,101,110,116,82,101,103,105,115,116,101,114,0,0,0,69,118,101,110,116,83,101,116,73,110,102,111,114,109, - 97,116,105,111,110,0,0,0,69,118,101,110,116,85,110,114,101,103,105,115,116,101,114,0,0,0,69,118,101,110,116,87,114,105,116,101,84,114,97,110,115,102,101,114,0,0,0,0,82,101,103,67,108,111,115,101,75,101,121,0,0,0,82,101,103,71,101,116,86,97,108, - 117,101,87,0,0,0,0,82,101,103,79,112,101,110,75,101,121,69,120,87,0,0,0,82,101,103,81,117,101,114,121,86,97,108,117,101,69,120,87,0,0,0,0,67,111,84,97,115,107,77,101,109,65,108,108,111,99,0,0,0,0,67,111,84,97,115,107,77,101,109,70,114,101,101, - 0,65,68,86,65,80,73,51,50,46,100,108,108,0,111,108,101,51,50,46,100,108,108,0,0,0,0,0,0,0,0,0,0,0,0,0,153,243,1,0,1,0,0,0,5,0,0,0,5,0,0,0,172,243,1,0,192,243,1,0,212,243,1,0,87,101,98,86,105,101,119,50,76,111,97,100,101,114,46,100,108,108,0, - 208,39,0,0,64,41,0,0,176,33,0,0,144,38,0,0,160,38,0,0,222,243,1,0,245,243,1,0,19,244,1,0,60,244,1,0,105,244,1,0,0,0,1,0,2,0,3,0,4,0,67,111,109,112,97,114,101,66,114,111,119,115,101,114,86,101,114,115,105,111,110,115,0,67,114,101,97,116,101,67, - 111,114,101,87,101,98,86,105,101,119,50,69,110,118,105,114,111,110,109,101,110,116,0,67,114,101,97,116,101,67,111,114,101,87,101,98,86,105,101,119,50,69,110,118,105,114,111,110,109,101,110,116,87,105,116,104,79,112,116,105,111,110,115,0,71,101, - 116,65,118,97,105,108,97,98,108,101,67,111,114,101,87,101,98,86,105,101,119,50,66,114,111,119,115,101,114,86,101,114,115,105,111,110,83,116,114,105,110,103,0,71,101,116,65,118,97,105,108,97,98,108,101,67,111,114,101,87,101,98,86,105,101,119, - 50,66,114,111,119,115,101,114,86,101,114,115,105,111,110,83,116,114,105,110,103,87,105,116,104,79,112,116,105,111,110,115,0,208,244,1,0,0,0,0,0,0,0,0,0,110,0,2,0,136,247,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,250,1,0,0, - 0,0,0,78,250,1,0,0,0,0,0,94,250,1,0,0,0,0,0,108,250,1,0,0,0,0,0,132,250,1,0,0,0,0,0,148,250,1,0,0,0,0,0,172,250,1,0,0,0,0,0,186,250,1,0,0,0,0,0,198,250,1,0,0,0,0,0,218,250,1,0,0,0,0,0,234,250,1,0,0,0,0,0,246,250,1,0,0,0,0,0,0,251,1,0,0,0,0,0, - 14,251,1,0,0,0,0,0,28,251,1,0,0,0,0,0,48,251,1,0,0,0,0,0,74,251,1,0,0,0,0,0,88,251,1,0,0,0,0,0,98,251,1,0,0,0,0,0,110,251,1,0,0,0,0,0,128,251,1,0,0,0,0,0,146,251,1,0,0,0,0,0,164,251,1,0,0,0,0,0,186,251,1,0,0,0,0,0,206,251,1,0,0,0,0,0,228,251, - 1,0,0,0,0,0,250,251,1,0,0,0,0,0,20,252,1,0,0,0,0,0,46,252,1,0,0,0,0,0,68,252,1,0,0,0,0,0,82,252,1,0,0,0,0,0,98,252,1,0,0,0,0,0,120,252,1,0,0,0,0,0,142,252,1,0,0,0,0,0,162,252,1,0,0,0,0,0,174,252,1,0,0,0,0,0,192,252,1,0,0,0,0,0,210,252,1,0,0, - 0,0,0,228,252,1,0,0,0,0,0,244,252,1,0,0,0,0,0,6,253,1,0,0,0,0,0,22,253,1,0,0,0,0,0,48,253,1,0,0,0,0,0,60,253,1,0,0,0,0,0,72,253,1,0,0,0,0,0,86,253,1,0,0,0,0,0,98,253,1,0,0,0,0,0,138,253,1,0,0,0,0,0,160,253,1,0,0,0,0,0,184,253,1,0,0,0,0,0,204, - 253,1,0,0,0,0,0,232,253,1,0,0,0,0,0,250,253,1,0,0,0,0,0,10,254,1,0,0,0,0,0,34,254,1,0,0,0,0,0,52,254,1,0,0,0,0,0,70,254,1,0,0,0,0,0,86,254,1,0,0,0,0,0,108,254,1,0,0,0,0,0,130,254,1,0,0,0,0,0,152,254,1,0,0,0,0,0,178,254,1,0,0,0,0,0,196,254,1, - 0,0,0,0,0,210,254,1,0,0,0,0,0,230,254,1,0,0,0,0,0,0,255,1,0,0,0,0,0,20,255,1,0,0,0,0,0,32,255,1,0,0,0,0,0,46,255,1,0,0,0,0,0,66,255,1,0,0,0,0,0,78,255,1,0,0,0,0,0,98,255,1,0,0,0,0,0,114,255,1,0,0,0,0,0,130,255,1,0,0,0,0,0,160,255,1,0,0,0,0,0, - 180,255,1,0,0,0,0,0,192,255,1,0,0,0,0,0,202,255,1,0,0,0,0,0,216,255,1,0,0,0,0,0,230,255,1,0,0,0,0,0,2,0,2,0,0,0,0,0,20,0,2,0,0,0,0,0,36,0,2,0,0,0,0,0,60,0,2,0,0,0,0,0,82,0,2,0,0,0,0,0,98,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,64,250,1,0,0,0,0,0,78,250, - 1,0,0,0,0,0,94,250,1,0,0,0,0,0,108,250,1,0,0,0,0,0,132,250,1,0,0,0,0,0,148,250,1,0,0,0,0,0,172,250,1,0,0,0,0,0,186,250,1,0,0,0,0,0,198,250,1,0,0,0,0,0,218,250,1,0,0,0,0,0,234,250,1,0,0,0,0,0,246,250,1,0,0,0,0,0,0,251,1,0,0,0,0,0,14,251,1,0,0, - 0,0,0,28,251,1,0,0,0,0,0,48,251,1,0,0,0,0,0,74,251,1,0,0,0,0,0,88,251,1,0,0,0,0,0,98,251,1,0,0,0,0,0,110,251,1,0,0,0,0,0,128,251,1,0,0,0,0,0,146,251,1,0,0,0,0,0,164,251,1,0,0,0,0,0,186,251,1,0,0,0,0,0,206,251,1,0,0,0,0,0,228,251,1,0,0,0,0,0, - 250,251,1,0,0,0,0,0,20,252,1,0,0,0,0,0,46,252,1,0,0,0,0,0,68,252,1,0,0,0,0,0,82,252,1,0,0,0,0,0,98,252,1,0,0,0,0,0,120,252,1,0,0,0,0,0,142,252,1,0,0,0,0,0,162,252,1,0,0,0,0,0,174,252,1,0,0,0,0,0,192,252,1,0,0,0,0,0,210,252,1,0,0,0,0,0,228,252, - 1,0,0,0,0,0,244,252,1,0,0,0,0,0,6,253,1,0,0,0,0,0,22,253,1,0,0,0,0,0,48,253,1,0,0,0,0,0,60,253,1,0,0,0,0,0,72,253,1,0,0,0,0,0,86,253,1,0,0,0,0,0,98,253,1,0,0,0,0,0,138,253,1,0,0,0,0,0,160,253,1,0,0,0,0,0,184,253,1,0,0,0,0,0,204,253,1,0,0,0,0, - 0,232,253,1,0,0,0,0,0,250,253,1,0,0,0,0,0,10,254,1,0,0,0,0,0,34,254,1,0,0,0,0,0,52,254,1,0,0,0,0,0,70,254,1,0,0,0,0,0,86,254,1,0,0,0,0,0,108,254,1,0,0,0,0,0,130,254,1,0,0,0,0,0,152,254,1,0,0,0,0,0,178,254,1,0,0,0,0,0,196,254,1,0,0,0,0,0,210, - 254,1,0,0,0,0,0,230,254,1,0,0,0,0,0,0,255,1,0,0,0,0,0,20,255,1,0,0,0,0,0,32,255,1,0,0,0,0,0,46,255,1,0,0,0,0,0,66,255,1,0,0,0,0,0,78,255,1,0,0,0,0,0,98,255,1,0,0,0,0,0,114,255,1,0,0,0,0,0,130,255,1,0,0,0,0,0,160,255,1,0,0,0,0,0,180,255,1,0,0, - 0,0,0,192,255,1,0,0,0,0,0,202,255,1,0,0,0,0,0,216,255,1,0,0,0,0,0,230,255,1,0,0,0,0,0,2,0,2,0,0,0,0,0,20,0,2,0,0,0,0,0,36,0,2,0,0,0,0,0,60,0,2,0,0,0,0,0,82,0,2,0,0,0,0,0,98,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,148,0,67,108,111,115,101,72,97,110,100, - 108,101,0,206,0,67,114,101,97,116,101,69,118,101,110,116,87,0,0,218,0,67,114,101,97,116,101,70,105,108,101,87,0,35,1,68,101,108,101,116,101,67,114,105,116,105,99,97,108,83,101,99,116,105,111,110,0,69,1,69,110,99,111,100,101,80,111,105,110,116, - 101,114,0,73,1,69,110,116,101,114,67,114,105,116,105,99,97,108,83,101,99,116,105,111,110,0,0,120,1,69,120,105,116,80,114,111,99,101,115,115,0,143,1,70,105,110,100,67,108,111,115,101,0,149,1,70,105,110,100,70,105,114,115,116,70,105,108,101,69, - 120,87,0,0,166,1,70,105,110,100,78,101,120,116,70,105,108,101,87,0,180,1,70,108,115,65,108,108,111,99,0,0,181,1,70,108,115,70,114,101,101,0,182,1,70,108,115,71,101,116,86,97,108,117,101,0,183,1,70,108,115,83,101,116,86,97,108,117,101,0,185,1, - 70,108,117,115,104,70,105,108,101,66,117,102,102,101,114,115,0,0,196,1,70,114,101,101,69,110,118,105,114,111,110,109,101,110,116,83,116,114,105,110,103,115,87,0,197,1,70,114,101,101,76,105,98,114,97,114,121,0,204,1,71,101,116,65,67,80,0,0,219, - 1,71,101,116,67,80,73,110,102,111,0,240,1,71,101,116,67,111,109,109,97,110,100,76,105,110,101,65,0,241,1,71,101,116,67,111,109,109,97,110,100,76,105,110,101,87,0,22,2,71,101,116,67,111,110,115,111,108,101,77,111,100,101,0,0,26,2,71,101,116,67, - 111,110,115,111,108,101,79,117,116,112,117,116,67,80,0,0,50,2,71,101,116,67,117,114,114,101,110,116,80,114,111,99,101,115,115,0,51,2,71,101,116,67,117,114,114,101,110,116,80,114,111,99,101,115,115,73,100,0,55,2,71,101,116,67,117,114,114,101, - 110,116,84,104,114,101,97,100,73,100,0,0,83,2,71,101,116,69,110,118,105,114,111,110,109,101,110,116,83,116,114,105,110,103,115,87,0,0,85,2,71,101,116,69,110,118,105,114,111,110,109,101,110,116,86,97,114,105,97,98,108,101,87,0,97,2,71,101,116, - 70,105,108,101,65,116,116,114,105,98,117,116,101,115,87,0,0,106,2,71,101,116,70,105,108,101,84,121,112,101,0,125,2,71,101,116,76,97,115,116,69,114,114,111,114,0,0,145,2,71,101,116,77,111,100,117,108,101,70,105,108,101,78,97,109,101,87,0,0,148, - 2,71,101,116,77,111,100,117,108,101,72,97,110,100,108,101,69,120,87,0,0,149,2,71,101,116,77,111,100,117,108,101,72,97,110,100,108,101,87,0,0,182,2,71,101,116,79,69,77,67,80,0,0,205,2,71,101,116,80,114,111,99,65,100,100,114,101,115,115,0,0,212, - 2,71,101,116,80,114,111,99,101,115,115,72,101,97,112,0,0,241,2,71,101,116,83,116,97,114,116,117,112,73,110,102,111,87,0,243,2,71,101,116,83,116,100,72,97,110,100,108,101,0,0,248,2,71,101,116,83,116,114,105,110,103,84,121,112,101,87,0,0,4,3,71, - 101,116,83,121,115,116,101,109,73,110,102,111,0,10,3,71,101,116,83,121,115,116,101,109,84,105,109,101,65,115,70,105,108,101,84,105,109,101,0,108,3,72,101,97,112,65,108,108,111,99,0,112,3,72,101,97,112,70,114,101,101,0,0,115,3,72,101,97,112,82, - 101,65,108,108,111,99,0,117,3,72,101,97,112,83,105,122,101,0,0,134,3,73,110,105,116,105,97,108,105,122,101,67,114,105,116,105,99,97,108,83,101,99,116,105,111,110,65,110,100,83,112,105,110,67,111,117,110,116,0,138,3,73,110,105,116,105,97,108, - 105,122,101,83,76,105,115,116,72,101,97,100,0,142,3,73,110,116,101,114,108,111,99,107,101,100,70,108,117,115,104,83,76,105,115,116,0,160,3,73,115,68,101,98,117,103,103,101,114,80,114,101,115,101,110,116,0,168,3,73,115,80,114,111,99,101,115,115, - 111,114,70,101,97,116,117,114,101,80,114,101,115,101,110,116,0,174,3,73,115,86,97,108,105,100,67,111,100,101,80,97,103,101,0,212,3,76,67,77,97,112,83,116,114,105,110,103,87,0,0,224,3,76,101,97,118,101,67,114,105,116,105,99,97,108,83,101,99,116, - 105,111,110,0,0,229,3,76,111,97,100,76,105,98,114,97,114,121,69,120,65,0,0,230,3,76,111,97,100,76,105,98,114,97,114,121,69,120,87,0,0,231,3,76,111,97,100,76,105,98,114,97,114,121,87,0,0,18,4,77,117,108,116,105,66,121,116,101,84,111,87,105,100, - 101,67,104,97,114,0,57,4,79,117,116,112,117,116,68,101,98,117,103,83,116,114,105,110,103,65,0,0,58,4,79,117,116,112,117,116,68,101,98,117,103,83,116,114,105,110,103,87,0,0,112,4,81,117,101,114,121,80,101,114,102,111,114,109,97,110,99,101,67, - 111,117,110,116,101,114,0,135,4,82,97,105,115,101,69,120,99,101,112,116,105,111,110,0,0,236,4,82,101,115,101,116,69,118,101,110,116,0,0,245,4,82,116,108,67,97,112,116,117,114,101,67,111,110,116,101,120,116,0,253,4,82,116,108,76,111,111,107,117, - 112,70,117,110,99,116,105,111,110,69,110,116,114,121,0,0,255,4,82,116,108,80,99,84,111,70,105,108,101,72,101,97,100,101,114,0,2,5,82,116,108,85,110,119,105,110,100,0,3,5,82,116,108,85,110,119,105,110,100,69,120,0,4,5,82,116,108,86,105,114,116, - 117,97,108,85,110,119,105,110,100,0,0,72,5,83,101,116,69,118,101,110,116,0,0,85,5,83,101,116,70,105,108,101,80,111,105,110,116,101,114,69,120,0,0,100,5,83,101,116,76,97,115,116,69,114,114,111,114,0,0,127,5,83,101,116,83,116,100,72,97,110,100, - 108,101,0,0,164,5,83,101,116,85,110,104,97,110,100,108,101,100,69,120,99,101,112,116,105,111,110,70,105,108,116,101,114,0,196,5,84,101,114,109,105,110,97,116,101,80,114,111,99,101,115,115,0,0,214,5,84,108,115,65,108,108,111,99,0,0,215,5,84,108, - 115,70,114,101,101,0,216,5,84,108,115,71,101,116,86,97,108,117,101,0,217,5,84,108,115,83,101,116,86,97,108,117,101,0,230,5,85,110,104,97,110,100,108,101,100,69,120,99,101,112,116,105,111,110,70,105,108,116,101,114,0,0,5,6,86,105,114,116,117, - 97,108,80,114,111,116,101,99,116,0,0,7,6,86,105,114,116,117,97,108,81,117,101,114,121,0,0,17,6,87,97,105,116,70,111,114,83,105,110,103,108,101,79,98,106,101,99,116,69,120,0,55,6,87,105,100,101,67,104,97,114,84,111,77,117,108,116,105,66,121,116, - 101,0,74,6,87,114,105,116,101,67,111,110,115,111,108,101,87,0,75,6,87,114,105,116,101,70,105,108,101,0,75,69,82,78,69,76,51,50,46,100,108,108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,4,1,0,4,66,0,0,64,100, - 0,0,176,0,2,0,120,189,0,2,0,192,0,2,0,208,0,2,0,4,8,16,2,0,0,2,200,0,2,0,2,17,128,246,87,1,0,22,2,8,2,0,25,10,2,0,10,50,6,80,64,100,0,0,228,0,2,0,105,238,0,2,0,240,0,2,0,112,2,8,0,0,0,0,1,6,2,0,6,50,2,48,1,4,1,0,4,66,0,0,1,10,4,0,10,52,6,0,10, - 50,6,112,9,4,1,0,4,34,0,0,0,87,0,0,1,0,0,0,223,66,0,0,105,67,0,0,20,88,1,0,105,67,0,0,1,2,1,0,2,80,0,0,1,20,8,0,20,100,8,0,20,84,7,0,20,52,6,0,20,50,16,112,1,21,5,0,21,52,186,0,21,1,184,0,6,80,0,0,1,4,1,0,4,130,0,0,1,15,6,0,15,100,6,0,15,52, - 5,0,15,18,11,112,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,17,21,8,0,21,116,9,0,21,100,7,0,21,52,6,0,21,50,17,224,0,87,0,0,2,0,0,0,52,75,0,0,163,75,0,0,44,88,1,0,0,0,0,0,6,76,0,0,17,76,0,0,44,88,1,0,0,0,0,0,1,6,2,0,6,50,2,80,17,10,4,0,10,52,8,0,10,82, - 6,112,0,87,0,0,4,0,0,0,75,76,0,0,106,76,0,0,67,88,1,0,0,0,0,0,64,76,0,0,130,76,0,0,92,88,1,0,0,0,0,0,139,76,0,0,150,76,0,0,67,88,1,0,0,0,0,0,139,76,0,0,151,76,0,0,92,88,1,0,0,0,0,0,9,26,6,0,26,52,15,0,26,114,22,224,20,112,19,96,0,87,0,0,1,0, - 0,0,37,77,0,0,11,78,0,0,112,88,1,0,11,78,0,0,1,6,2,0,6,82,2,80,1,15,6,0,15,100,7,0,15,52,6,0,15,50,11,112,1,15,6,0,15,116,3,0,10,100,2,0,5,52,1,0,1,13,4,0,13,52,18,0,13,242,6,112,1,16,6,0,16,100,7,0,16,52,6,0,16,50,12,112,1,31,12,0,31,116,23, - 0,31,100,22,0,31,52,21,0,31,210,24,240,22,224,20,208,18,192,16,80,1,13,4,0,13,52,9,0,13,50,6,80,1,15,6,0,15,100,15,0,15,52,14,0,15,146,11,112,1,28,12,0,28,100,16,0,28,84,15,0,28,52,14,0,28,114,24,240,22,224,20,208,18,192,16,112,1,21,9,0,21,116, - 5,0,21,100,4,0,21,84,3,0,21,52,2,0,21,224,0,0,1,22,10,0,22,84,12,0,22,52,11,0,22,50,18,240,16,224,14,192,12,112,11,96,25,28,3,0,14,1,28,0,2,80,0,0,168,196,0,0,208,0,0,0,1,37,12,0,37,104,5,0,25,116,17,0,25,100,16,0,25,84,15,0,25,52,14,0,25,178, - 21,224,1,20,8,0,20,100,13,0,20,84,12,0,20,52,11,0,20,114,16,112,1,20,8,0,20,100,17,0,20,84,16,0,20,52,15,0,20,178,16,112,9,24,2,0,24,210,20,48,0,87,0,0,1,0,0,0,39,101,0,0,71,101,0,0,73,89,1,0,71,101,0,0,1,8,4,0,8,114,4,112,3,80,2,48,9,24,2,0, - 24,210,20,48,0,87,0,0,1,0,0,0,123,101,0,0,155,101,0,0,166,88,1,0,155,101,0,0,9,13,1,0,13,130,0,0,0,87,0,0,1,0,0,0,233,101,0,0,248,101,0,0,250,89,1,0,248,101,0,0,1,7,3,0,7,66,3,80,2,48,0,0,1,21,8,0,21,116,8,0,21,100,7,0,21,52,6,0,21,50,17,224, - 2,1,3,0,2,22,0,6,1,112,0,0,1,0,0,0,17,6,2,0,6,50,2,48,0,87,0,0,1,0,0,0,138,111,0,0,163,111,0,0,144,90,1,0,0,0,0,0,25,15,2,0,6,82,2,48,184,99,0,0,152,101,1,0,50,112,0,0,255,255,255,255,25,30,4,0,30,52,12,0,17,146,10,80,184,99,0,0,192,101,1,0, - 255,255,255,255,32,102,0,0,0,0,0,0,78,113,0,0,0,0,0,0,9,6,2,0,6,82,2,48,0,87,0,0,1,0,0,0,145,113,0,0,234,113,0,0,192,90,1,0,53,114,0,0,17,15,4,0,15,52,6,0,15,50,11,112,0,87,0,0,1,0,0,0,89,114,0,0,98,114,0,0,166,90,1,0,0,0,0,0,1,19,8,0,19,52, - 12,0,19,82,12,240,10,224,8,112,7,96,6,80,1,28,12,0,28,100,12,0,28,84,11,0,28,52,10,0,28,50,24,240,22,224,20,208,18,192,16,112,1,18,2,0,18,114,11,80,17,19,1,0,11,98,0,0,184,99,0,0,232,101,1,0,0,0,0,0,204,118,0,0,0,0,0,0,1,24,10,0,24,100,10,0, - 24,84,9,0,24,52,8,0,24,50,20,240,18,224,16,112,17,15,4,0,15,52,6,0,15,50,11,112,0,87,0,0,1,0,0,0,213,121,0,0,223,121,0,0,166,90,1,0,0,0,0,0,17,15,4,0,15,52,6,0,15,50,11,112,0,87,0,0,1,0,0,0,17,122,0,0,27,122,0,0,166,90,1,0,0,0,0,0,17,13,1,0, - 4,98,0,0,184,99,0,0,16,102,1,0,1,15,4,0,15,52,6,0,15,50,11,112,1,25,10,0,25,116,11,0,25,100,10,0,25,84,9,0,25,52,8,0,25,82,21,224,1,4,1,0,4,98,0,0,1,6,2,0,6,82,2,48,1,24,10,0,24,100,14,0,24,84,13,0,24,52,12,0,24,114,20,240,18,224,16,112,1,18, - 6,0,18,116,17,0,18,52,16,0,18,210,11,80,1,6,2,0,6,50,2,112,33,5,2,0,5,52,7,0,80,131,0,0,95,131,0,0,196,5,2,0,33,0,0,0,80,131,0,0,95,131,0,0,196,5,2,0,1,28,11,0,28,52,30,0,28,1,20,0,21,240,19,224,17,208,15,192,13,112,12,96,11,80,0,0,25,4,1,0, - 4,66,0,0,236,9,1,0,1,0,0,0,2,140,0,0,20,140,0,0,1,0,0,0,20,140,0,0,9,10,4,0,10,52,6,0,10,50,6,112,0,87,0,0,1,0,0,0,157,144,0,0,208,144,0,0,240,90,1,0,208,144,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,30,10,0,30,52,14,0,30,50,26,240,24,224,22,208,20,192, - 18,112,17,96,16,80,1,15,6,0,15,100,9,0,15,52,8,0,15,82,11,112,25,30,8,0,30,82,26,240,24,224,22,208,20,192,18,112,17,96,16,48,0,87,0,0,3,0,0,0,2,155,0,0,148,155,0,0,151,92,1,0,148,155,0,0,199,154,0,0,187,155,0,0,173,92,1,0,0,0,0,0,246,155,0,0, - 252,155,0,0,173,92,1,0,0,0,0,0,25,16,8,0,16,210,12,240,10,224,8,208,6,192,4,112,3,96,2,48,0,87,0,0,2,0,0,0,117,157,0,0,154,157,0,0,44,91,1,0,154,157,0,0,117,157,0,0,18,158,0,0,81,91,1,0,0,0,0,0,25,43,11,0,25,104,15,0,21,1,32,0,14,240,12,224, - 10,208,8,192,6,112,5,96,4,48,0,0,40,14,1,0,2,0,0,0,193,160,0,0,33,161,0,0,208,92,1,0,33,161,0,0,221,159,0,0,65,161,0,0,230,92,1,0,0,0,0,0,227,0,0,0,25,19,8,0,19,1,21,0,12,240,10,208,8,192,6,112,5,96,4,48,0,87,0,0,4,0,0,0,146,162,0,0,221,162, - 0,0,215,91,1,0,221,162,0,0,146,162,0,0,89,163,0,0,6,92,1,0,0,0,0,0,217,163,0,0,223,163,0,0,215,91,1,0,221,162,0,0,217,163,0,0,223,163,0,0,6,92,1,0,0,0,0,0,1,28,12,0,28,100,13,0,28,84,12,0,28,52,10,0,28,50,24,240,22,224,20,208,18,192,16,112,17, - 4,1,0,4,162,0,0,0,87,0,0,1,0,0,0,153,166,0,0,226,166,0,0,16,91,1,0,0,0,0,0,1,6,2,0,6,114,2,80,1,25,10,0,25,116,9,0,25,100,8,0,25,84,7,0,25,52,6,0,25,50,21,224,9,25,10,0,25,116,12,0,25,100,11,0,25,52,10,0,25,82,21,240,19,224,17,208,0,87,0,0,2, - 0,0,0,249,169,0,0,46,171,0,0,1,0,0,0,104,171,0,0,78,171,0,0,104,171,0,0,1,0,0,0,104,171,0,0,9,25,10,0,25,116,12,0,25,100,11,0,25,52,10,0,25,82,21,240,19,224,17,208,0,87,0,0,2,0,0,0,250,171,0,0,49,173,0,0,1,0,0,0,107,173,0,0,81,173,0,0,107,173, - 0,0,1,0,0,0,107,173,0,0,9,21,8,0,21,116,8,0,21,100,7,0,21,52,6,0,21,50,17,224,0,87,0,0,1,0,0,0,162,173,0,0,24,174,0,0,1,0,0,0,46,174,0,0,9,21,8,0,21,116,8,0,21,100,7,0,21,52,6,0,21,50,17,224,0,87,0,0,1,0,0,0,99,174,0,0,217,174,0,0,1,0,0,0,239, - 174,0,0,1,25,10,0,25,116,15,0,25,100,14,0,25,84,13,0,25,52,12,0,25,146,21,224,1,27,10,0,27,100,22,0,27,84,21,0,27,52,20,0,27,242,20,240,18,224,16,112,25,39,10,0,25,1,37,0,13,240,11,224,9,208,7,192,5,112,4,96,3,48,2,80,168,196,0,0,16,1,0,0,25, - 42,10,0,28,1,49,0,13,240,11,224,9,208,7,192,5,112,4,96,3,48,2,80,168,196,0,0,112,1,0,0,1,26,10,0,26,52,20,0,26,178,22,240,20,224,18,208,16,192,14,112,13,96,12,80,1,37,11,0,37,52,35,0,37,1,24,0,26,240,24,224,22,208,20,192,18,112,17,96,16,80,0, - 0,25,39,10,0,25,1,39,0,13,240,11,224,9,208,7,192,5,112,4,96,3,48,2,80,168,196,0,0,40,1,0,0,1,2,1,0,2,48,0,0,1,0,0,0,0,0,0,0,2,2,4,0,3,22,0,6,2,96,1,112,1,0,0,0,1,5,2,0,5,116,1,0,1,20,8,0,20,100,14,0,20,84,13,0,20,52,12,0,20,146,16,112,1,10,2, - 0,10,50,6,48,1,9,2,0,9,146,2,80,1,9,2,0,9,114,2,80,17,15,4,0,15,52,6,0,15,50,11,112,0,87,0,0,1,0,0,0,77,216,0,0,93,216,0,0,166,90,1,0,0,0,0,0,17,15,4,0,15,52,6,0,15,50,11,112,0,87,0,0,1,0,0,0,141,216,0,0,163,216,0,0,166,90,1,0,0,0,0,0,17,15, - 4,0,15,52,6,0,15,50,11,112,0,87,0,0,1,0,0,0,213,216,0,0,5,217,0,0,166,90,1,0,0,0,0,0,17,15,4,0,15,52,6,0,15,50,11,112,0,87,0,0,1,0,0,0,53,217,0,0,67,217,0,0,166,90,1,0,0,0,0,0,17,6,2,0,6,50,2,48,0,87,0,0,1,0,0,0,114,217,0,0,137,217,0,0,9,93, - 1,0,0,0,0,0,1,28,11,0,28,116,23,0,28,100,22,0,28,84,21,0,28,52,20,0,28,1,18,0,21,224,0,0,25,37,10,0,22,84,17,0,22,52,16,0,22,114,18,240,16,224,14,192,12,112,11,96,168,196,0,0,56,0,0,0,1,6,2,0,6,114,2,48,25,15,6,0,15,100,8,0,15,52,7,0,15,50,11, - 112,236,9,1,0,1,0,0,0,169,224,0,0,248,224,0,0,60,93,1,0,0,0,0,0,1,37,9,0,37,100,83,0,37,52,82,0,37,1,78,0,23,224,21,112,20,80,0,0,25,43,7,0,26,116,244,0,26,52,243,0,26,1,240,0,11,80,0,0,168,196,0,0,112,7,0,0,17,15,4,0,15,52,10,0,15,114,11,112, - 0,87,0,0,1,0,0,0,149,229,0,0,52,231,0,0,34,93,1,0,0,0,0,0,25,46,9,0,29,100,196,0,29,52,195,0,29,1,190,0,14,224,12,112,11,80,0,0,168,196,0,0,224,5,0,0,1,20,8,0,20,100,10,0,20,84,9,0,20,52,8,0,20,82,16,112,1,15,6,0,15,100,8,0,15,52,7,0,15,50,11, - 112,1,13,4,0,13,52,16,0,13,210,6,80,1,7,1,0,7,66,0,0,17,23,10,0,23,100,17,0,23,52,16,0,23,114,19,240,17,224,15,208,13,192,11,112,0,87,0,0,2,0,0,0,201,237,0,0,126,238,0,0,85,93,1,0,0,0,0,0,252,238,0,0,20,239,0,0,85,93,1,0,0,0,0,0,17,15,4,0,15, - 52,6,0,15,50,11,112,0,87,0,0,1,0,0,0,50,239,0,0,75,239,0,0,166,90,1,0,0,0,0,0,1,18,6,0,18,116,15,0,18,52,14,0,18,178,11,80,1,12,2,0,12,114,5,80,17,15,4,0,15,52,6,0,15,50,11,112,0,87,0,0,1,0,0,0,170,241,0,0,21,242,0,0,118,93,1,0,0,0,0,0,17,18, - 6,0,18,52,16,0,18,178,14,224,12,112,11,96,0,87,0,0,1,0,0,0,72,242,0,0,241,242,0,0,145,93,1,0,0,0,0,0,1,23,10,0,23,52,18,0,23,146,16,240,14,224,12,208,10,192,8,112,7,96,6,80,1,25,10,0,25,116,13,0,25,100,12,0,25,84,11,0,25,52,10,0,25,114,21,224, - 1,28,12,0,28,100,14,0,28,84,13,0,28,52,12,0,28,82,24,240,22,224,20,208,18,192,16,112,25,43,9,0,26,1,104,0,11,224,9,208,7,192,5,112,4,96,3,48,2,80,0,0,168,196,0,0,48,3,0,0,25,43,7,0,26,116,88,0,26,52,87,0,26,1,84,0,11,80,0,0,168,196,0,0,144,2, - 0,0,1,20,8,0,20,100,12,0,20,84,11,0,20,52,10,0,20,114,16,112,1,15,6,0,15,100,11,0,15,52,10,0,15,114,11,112,1,6,3,0,6,52,2,0,6,112,0,0,1,9,1,0,9,162,0,0,17,20,6,0,20,100,9,0,20,52,8,0,20,82,16,112,0,87,0,0,1,0,0,0,207,8,1,0,7,9,1,0,174,93,1,0, - 0,0,0,0,1,10,4,0,10,52,7,0,10,50,6,112,0,0,0,0,1,4,1,0,4,66,0,0,1,4,1,0,4,66,0,0,1,4,1,0,4,66,0,0,1,4,1,0,4,66,0,0,1,14,1,0,14,66,0,0,1,8,1,0,8,66,0,0,1,9,1,0,9,98,0,0,1,10,4,0,10,52,13,0,10,114,6,112,1,8,4,0,8,114,4,112,3,96,2,48,1,0,0,0,17, - 10,4,0,10,52,6,0,10,50,6,112,0,87,0,0,1,0,0,0,77,22,1,0,95,22,1,0,200,93,1,0,0,0,0,0,1,20,6,0,20,100,7,0,20,52,6,0,20,50,16,112,17,21,8,0,21,116,10,0,21,100,9,0,21,52,8,0,21,82,17,240,0,87,0,0,1,0,0,0,107,25,1,0,178,25,1,0,9,93,1,0,0,0,0,0,25, - 45,13,53,31,116,20,0,27,100,19,0,23,52,18,0,19,51,14,178,10,240,8,224,6,208,4,192,2,80,0,0,168,196,0,0,88,0,0,0,1,15,6,0,15,100,17,0,15,52,16,0,15,210,11,112,25,45,13,85,31,116,20,0,27,100,19,0,23,52,18,0,19,83,14,178,10,240,8,224,6,208,4,192, - 2,80,0,0,168,196,0,0,88,0,0,0,1,8,1,0,8,98,0,0,17,15,4,0,15,52,6,0,15,50,11,112,0,87,0,0,1,0,0,0,57,32,1,0,147,32,1,0,225,93,1,0,0,0,0,0,1,20,9,0,20,226,13,240,11,224,9,208,7,192,5,112,4,96,3,48,2,80,0,0,17,27,8,0,27,52,14,0,27,82,23,240,21, - 224,19,208,17,192,15,96,0,87,0,0,1,0,0,0,169,36,1,0,230,36,1,0,251,93,1,0,0,0,0,0,25,51,11,0,37,52,34,0,25,1,26,0,14,240,12,224,10,208,8,192,6,112,5,96,4,80,0,0,96,66,1,0,168,191,1,0,203,0,0,0,0,0,0,0,212,38,1,0,255,255,255,255,25,45,9,0,27, - 84,144,2,27,52,142,2,27,1,138,2,14,224,12,112,11,96,0,0,168,196,0,0,64,20,0,0,25,49,11,0,31,84,150,2,31,52,148,2,31,1,142,2,18,240,16,224,14,192,12,112,11,96,0,0,168,196,0,0,96,20,0,0,17,10,4,0,10,52,9,0,10,82,6,112,0,87,0,0,1,0,0,0,26,45,1, - 0,153,45,1,0,18,94,1,0,0,0,0,0,25,31,5,0,13,1,138,0,6,224,4,208,2,192,0,0,168,196,0,0,16,4,0,0,33,40,10,0,40,244,133,0,32,116,134,0,24,100,135,0,16,84,136,0,8,52,137,0,96,46,1,0,187,46,1,0,168,15,2,0,33,0,0,0,96,46,1,0,187,46,1,0,168,15,2,0, - 1,11,5,0,11,100,3,0,11,52,2,0,11,112,0,0,25,19,1,0,4,162,0,0,168,196,0,0,64,0,0,0,1,10,4,0,10,52,10,0,10,114,6,112,1,14,2,0,14,50,10,48,1,24,6,0,24,84,7,0,24,52,6,0,24,50,20,96,1,0,0,0,0,0,0,0,1,4,1,0,4,18,0,0,1,23,10,0,23,84,14,0,23,52,13,0, - 23,82,19,240,17,224,15,208,13,192,11,112,1,9,1,0,9,66,0,0,1,16,6,0,16,100,9,0,16,52,8,0,16,82,12,112,17,16,4,0,16,52,9,0,16,82,12,112,0,87,0,0,1,0,0,0,129,68,1,0,142,68,1,0,43,94,1,0,0,0,0,0,25,30,8,0,15,114,11,240,9,224,7,192,5,112,4,96,3,80, - 2,48,168,196,0,0,48,0,0,0,1,8,1,0,8,162,0,0,17,15,4,0,15,52,6,0,15,50,11,112,0,87,0,0,1,0,0,0,93,73,1,0,163,73,1,0,225,93,1,0,0,0,0,0,0,0,0,0,1,10,3,0,10,104,2,0,4,162,0,0,1,8,2,0,8,146,4,48,25,38,9,0,24,104,13,0,20,1,28,0,9,224,7,112,6,96,5, - 48,4,80,0,0,168,196,0,0,192,0,0,0,1,6,2,0,6,18,2,48,1,11,3,0,11,104,5,0,7,194,0,0,1,4,1,0,4,2,0,0,1,27,8,0,27,116,9,0,27,100,8,0,27,52,7,0,27,50,20,80,9,15,6,0,15,100,9,0,15,52,8,0,15,50,11,112,0,87,0,0,1,0,0,0,82,87,1,0,89,87,1,0,67,94,1,0, - 89,87,1,0,1,5,2,0,5,114,1,96,1,5,2,0,5,114,1,96,1,6,3,0,6,162,2,112,1,96,0,0,1,7,4,0,7,146,3,48,2,112,1,96,1,6,3,0,6,98,2,112,1,96,0,0,1,9,5,0,9,66,5,48,4,112,3,96,2,224,0,0,1,9,5,0,9,130,5,48,4,112,3,96,2,224,0,0,1,12,7,0,12,162,8,48,7,80,6, - 112,5,96,4,224,2,240,0,0,1,5,2,0,5,50,1,96,1,5,2,0,5,114,1,96,1,20,8,0,20,104,8,0,12,1,19,0,5,48,4,112,3,96,2,224,1,27,12,0,27,104,13,0,19,1,29,0,12,48,11,80,10,112,9,96,8,192,6,208,4,224,2,240,1,24,10,0,24,104,15,0,16,1,33,0,9,48,8,112,7,96, - 6,192,4,224,2,240,1,23,10,0,23,104,13,0,15,1,29,0,8,48,7,80,6,112,5,96,4,224,2,240,1,24,10,0,24,104,10,0,16,1,23,0,9,48,8,112,7,96,6,192,4,224,2,240,1,12,7,0,12,98,8,48,7,80,6,112,5,96,4,224,2,240,0,0,1,17,9,0,17,1,76,0,10,48,9,80,8,112,7,96, - 6,192,4,224,2,240,0,0,1,6,3,0,6,66,2,112,1,96,0,0,1,6,3,0,6,194,2,112,1,96,0,0,1,7,4,0,7,82,3,48,2,112,1,96,1,32,12,0,32,104,10,0,24,120,11,0,16,1,25,0,9,48,8,112,7,96,6,192,4,224,2,240,1,16,9,0,16,162,12,48,11,80,10,112,9,96,8,192,6,208,4,224, - 2,240,0,0,1,12,7,0,12,66,8,48,7,80,6,112,5,96,4,224,2,240,0,0,1,25,11,0,25,104,11,0,17,1,24,0,10,48,9,80,8,112,7,96,6,192,4,224,2,240,0,0,1,16,9,0,16,130,12,48,11,80,10,112,9,96,8,192,6,208,4,224,2,240,0,0,1,14,7,0,14,1,74,0,7,48,6,112,5,96, - 4,224,2,240,0,0,1,11,6,0,11,50,7,48,6,112,5,96,4,224,2,240,1,7,4,0,7,50,3,48,2,112,1,96,1,16,9,0,16,66,12,48,11,80,10,112,9,96,8,192,6,208,4,224,2,240,0,0,1,10,6,0,10,178,6,48,5,80,4,112,3,96,2,224,0,0,0,0,20,72,0,0,0,0,0,0,168,19,2,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,192,19,2,0,232,19,2,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,40,42,2,0,0,0,0,0,255,255,255,255,0,0,0,0,24,0,0,0,40,72,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,42,2,0,0,0,0,0,255,255,255,255,0,0,0,0,24,0,0,0,88,71,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,72,0,0,0,0,0,0,48,20,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,80,20,2,0,192,19,2,0,232,19,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,120,42,2,0,0,0,0,0,255,255,255,255,0,0,0,0,24,0,0,0,132,72,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,72,0,0,0,0,0,0,152,20,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,176,20,2,0,232,19,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,168,42,2,0,0,0,0,0,255,255,255,255,0,0,0,0,24,0,0,0,28,164,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,255,255,255,255,1,0,0,0,2,0,0,0,0,0,8,0,0,0,0,0,0,0,0,2,0,0,0,0,205,93,32,210,102,212,255,255,50,162,223,45,153,43,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,0,0,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,0,0,0,0,0,0,65,66,67,68,69,70,71,72,73,74,75,76,77, - 78,79,80,81,82,83,84,85,86,87,88,89,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,0,0,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,0,0,0,0,0,0,65,66,67,68,69,70, - 71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,4,8,0,0,0,0,0,0,0,0,0,0,0,0,164,3,0,0,96,130,121,130,33,0,0,0,0,0,0,0,166,223,0,0,0,0,0,0,161,165,0,0,0,0,0,0,129,159,224,252,0,0,0,0,64,126,128,252,0,0, - 0,0,168,3,0,0,193,163,218,163,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,129,254,0,0,0,0,0,0,64,254,0,0,0,0,0,0,181,3,0,0,193,163,218,163,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,129,254,0,0,0,0,0,0,65,254,0,0,0,0,0,0,182,3,0,0, - 207,162,228,162,26,0,229,162,232,162,91,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,129,254,0,0,0,0,0,0,64,126,161,254,0,0,0,0,81,5,0,0,81,218,94,218,32,0,95,218,106,218,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,129,211,216,222,224,249,0,0,49,126,129,254,0, - 0,0,0,224,132,1,128,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,38,2,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,38,2,128,1,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,38,2,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,38,2,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,38,2,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,40,2,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,135,1,128,1,0,0,0,224,136,1,128,1,0,0,0,240,123,1,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,144,37,2,128,1,0,0,0,80,32,2,128,1,0,0,0,67,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,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,32,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,32,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,8,0,0,0,226,137,1,128,1,0,0,0,0,0,0,0,0,0,0,0,117,152,0,0,254,255,255,255,0,0,0,0,0,0,0,0,200,40,2,128,1, - 0,0,0,112,61,2,128,1,0,0,0,112,61,2,128,1,0,0,0,112,61,2,128,1,0,0,0,112,61,2,128,1,0,0,0,112,61,2,128,1,0,0,0,112,61,2,128,1,0,0,0,112,61,2,128,1,0,0,0,112,61,2,128,1,0,0,0,112,61,2,128,1,0,0,0,127,127,127,127,127,127,127,127,204,40,2,128,1, - 0,0,0,116,61,2,128,1,0,0,0,116,61,2,128,1,0,0,0,116,61,2,128,1,0,0,0,116,61,2,128,1,0,0,0,116,61,2,128,1,0,0,0,116,61,2,128,1,0,0,0,116,61,2,128,1,0,0,0,46,0,0,0,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,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,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,254,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,196,234,1,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,96,97,1,128,1,0,0,0,0,0,0,0,0,0,0,0,46,63,65,86,98,97,100,95,97,108,108,111,99,64,115, - 116,100,64,64,0,0,0,0,0,96,97,1,128,1,0,0,0,0,0,0,0,0,0,0,0,46,63,65,86,101,120,99,101,112,116,105,111,110,64,115,116,100,64,64,0,0,0,0,0,96,97,1,128,1,0,0,0,0,0,0,0,0,0,0,0,46,63,65,86,98,97,100,95,97,114,114,97,121,95,110,101,119,95,108,101, - 110,103,116,104,64,115,116,100,64,64,0,0,96,97,1,128,1,0,0,0,0,0,0,0,0,0,0,0,46,63,65,86,98,97,100,95,101,120,99,101,112,116,105,111,110,64,115,116,100,64,64,0,96,97,1,128,1,0,0,0,0,0,0,0,0,0,0,0,46,63,65,86,116,121,112,101,95,105,110,102,111, - 64,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,111,94,1,128,1,0,0,0,123,94,1,128,1,0,0,0,135,94,1,128,1,0,0,0,147,94,1,128,1,0,0,0,159,94,1,128,1,0,0,0,171,94,1,128,1,0,0,0,183,94,1,128,1,0,0,0,195,94,1,128,1,0,0,0,0,0,0,0,0,0,0,0,34,95,1,128,1,0,0, - 0,46,95,1,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,149,16,0,0,116,17,2,0,149,16,0,0,9,17,0,0,124,17,2,0,9,17,0,0,199,17,0,0,132,17,2,0,200,17,0,0,157,18,0,0,144,17,2,0, - 157,18,0,0,80,19,0,0,156,17,2,0,80,19,0,0,29,20,0,0,168,17,2,0,29,20,0,0,214,21,0,0,184,17,2,0,214,21,0,0,93,23,0,0,200,17,2,0,93,23,0,0,2,24,0,0,220,17,2,0,2,24,0,0,169,24,0,0,228,17,2,0,169,24,0,0,37,26,0,0,236,17,2,0,37,26,0,0,166,32,0,0, - 0,18,2,0,166,32,0,0,164,33,0,0,156,17,2,0,176,33,0,0,5,36,0,0,28,18,2,0,5,36,0,0,142,38,0,0,52,18,2,0,160,38,0,0,198,39,0,0,76,18,2,0,208,39,0,0,124,40,0,0,144,17,2,0,124,40,0,0,55,41,0,0,100,18,2,0,79,41,0,0,58,43,0,0,120,18,2,0,58,43,0,0,163, - 43,0,0,144,18,2,0,224,43,0,0,62,44,0,0,220,17,2,0,64,44,0,0,44,45,0,0,156,18,2,0,48,45,0,0,128,45,0,0,144,18,2,0,130,45,0,0,245,45,0,0,252,0,2,0,248,45,0,0,227,47,0,0,168,18,2,0,227,47,0,0,16,50,0,0,180,18,2,0,16,50,0,0,30,52,0,0,208,18,2,0, - 30,52,0,0,198,52,0,0,232,18,2,0,198,52,0,0,93,55,0,0,252,18,2,0,93,55,0,0,206,56,0,0,24,19,2,0,206,56,0,0,133,57,0,0,48,19,2,0,154,57,0,0,210,57,0,0,220,17,2,0,210,57,0,0,246,57,0,0,220,17,2,0,246,57,0,0,139,58,0,0,68,19,2,0,140,58,0,0,190,58, - 0,0,144,18,2,0,190,58,0,0,52,59,0,0,168,17,2,0,108,59,0,0,158,59,0,0,144,18,2,0,158,59,0,0,19,60,0,0,68,19,2,0,74,60,0,0,129,60,0,0,252,0,2,0,136,60,0,0,216,60,0,0,84,19,2,0,216,60,0,0,54,61,0,0,84,19,2,0,56,61,0,0,224,61,0,0,96,19,2,0,224,61, - 0,0,173,63,0,0,120,19,2,0,180,63,0,0,199,63,0,0,160,0,2,0,224,63,0,0,176,64,0,0,4,1,2,0,176,64,0,0,23,65,0,0,244,0,2,0,24,65,0,0,120,65,0,0,244,0,2,0,120,65,0,0,219,65,0,0,244,0,2,0,220,65,0,0,29,66,0,0,252,0,2,0,32,66,0,0,72,66,0,0,252,0,2, - 0,72,66,0,0,132,66,0,0,244,0,2,0,132,66,0,0,155,66,0,0,252,0,2,0,156,66,0,0,214,66,0,0,244,0,2,0,216,66,0,0,112,67,0,0,16,1,2,0,112,67,0,0,169,67,0,0,252,0,2,0,172,67,0,0,208,67,0,0,244,0,2,0,208,67,0,0,25,68,0,0,244,0,2,0,28,68,0,0,69,68,0, - 0,244,0,2,0,72,68,0,0,211,68,0,0,244,0,2,0,212,68,0,0,52,69,0,0,56,1,2,0,52,69,0,0,73,69,0,0,252,0,2,0,76,69,0,0,128,69,0,0,252,0,2,0,128,69,0,0,176,69,0,0,252,0,2,0,176,69,0,0,196,69,0,0,252,0,2,0,196,69,0,0,236,69,0,0,252,0,2,0,236,69,0,0, - 1,70,0,0,252,0,2,0,12,70,0,0,87,71,0,0,76,1,2,0,88,71,0,0,138,71,0,0,244,0,2,0,176,71,0,0,242,71,0,0,4,1,2,0,40,72,0,0,100,72,0,0,244,0,2,0,132,72,0,0,192,72,0,0,244,0,2,0,192,72,0,0,224,72,0,0,92,1,2,0,224,72,0,0,0,73,0,0,92,1,2,0,0,73,0,0, - 172,74,0,0,100,1,2,0,208,74,0,0,251,74,0,0,244,0,2,0,252,74,0,0,18,76,0,0,132,1,2,0,20,76,0,0,152,76,0,0,200,1,2,0,160,76,0,0,240,76,0,0,252,0,2,0,240,76,0,0,33,78,0,0,28,2,2,0,48,78,0,0,109,78,0,0,76,2,2,0,112,78,0,0,14,79,0,0,4,1,2,0,16,79, - 0,0,169,79,0,0,92,2,2,0,172,79,0,0,68,80,0,0,108,2,2,0,68,80,0,0,210,80,0,0,120,2,2,0,212,80,0,0,126,81,0,0,244,0,2,0,128,81,0,0,19,82,0,0,252,0,2,0,20,82,0,0,234,84,0,0,136,2,2,0,236,84,0,0,152,85,0,0,164,2,2,0,180,85,0,0,207,85,0,0,252,0,2, - 0,232,85,0,0,36,86,0,0,4,1,2,0,36,86,0,0,96,86,0,0,4,1,2,0,96,86,0,0,0,87,0,0,176,2,2,0,0,87,0,0,247,88,0,0,192,2,2,0,248,88,0,0,26,90,0,0,220,2,2,0,224,91,0,0,66,92,0,0,56,1,2,0,68,92,0,0,110,92,0,0,244,0,2,0,112,92,0,0,212,92,0,0,76,2,2,0, - 212,92,0,0,160,93,0,0,244,2,2,0,160,93,0,0,163,94,0,0,12,3,2,0,164,94,0,0,226,95,0,0,192,2,2,0,236,95,0,0,30,96,0,0,252,0,2,0,32,96,0,0,63,97,0,0,12,3,2,0,100,97,0,0,205,98,0,0,32,3,2,0,208,98,0,0,226,98,0,0,252,0,2,0,228,98,0,0,252,98,0,0,244, - 0,2,0,252,98,0,0,14,99,0,0,252,0,2,0,16,99,0,0,40,99,0,0,244,0,2,0,40,99,0,0,98,99,0,0,244,0,2,0,100,99,0,0,183,99,0,0,4,1,2,0,184,99,0,0,62,100,0,0,60,3,2,0,64,100,0,0,255,100,0,0,80,3,2,0,0,101,0,0,81,101,0,0,100,3,2,0,84,101,0,0,165,101,0, - 0,144,3,2,0,176,101,0,0,29,102,0,0,176,3,2,0,32,102,0,0,42,102,0,0,252,0,2,0,48,102,0,0,95,102,0,0,244,0,2,0,132,102,0,0,234,102,0,0,4,1,2,0,236,102,0,0,121,103,0,0,220,3,2,0,124,103,0,0,161,103,0,0,244,0,2,0,164,103,0,0,206,103,0,0,244,0,2, - 0,248,103,0,0,32,104,0,0,252,0,2,0,32,104,0,0,57,104,0,0,252,0,2,0,60,104,0,0,76,104,0,0,252,0,2,0,76,104,0,0,96,104,0,0,252,0,2,0,96,104,0,0,114,104,0,0,252,0,2,0,128,104,0,0,154,104,0,0,252,0,2,0,192,104,0,0,208,104,0,0,240,3,2,0,224,104,0, - 0,104,108,0,0,252,3,2,0,64,109,0,0,99,109,0,0,252,0,2,0,144,109,0,0,160,109,0,0,252,0,2,0,192,109,0,0,253,109,0,0,244,0,2,0,16,110,0,0,80,110,0,0,244,0,2,0,80,110,0,0,171,110,0,0,252,0,2,0,200,110,0,0,253,110,0,0,252,0,2,0,0,111,0,0,16,111,0, - 0,252,0,2,0,16,111,0,0,36,111,0,0,252,0,2,0,36,111,0,0,52,111,0,0,252,0,2,0,52,111,0,0,114,111,0,0,4,1,2,0,124,111,0,0,179,111,0,0,0,4,2,0,224,111,0,0,79,112,0,0,32,4,2,0,80,112,0,0,113,112,0,0,252,0,2,0,116,112,0,0,166,112,0,0,244,0,2,0,168, - 112,0,0,109,113,0,0,56,4,2,0,112,113,0,0,59,114,0,0,96,4,2,0,60,114,0,0,116,114,0,0,128,4,2,0,116,114,0,0,250,115,0,0,164,4,2,0,252,115,0,0,89,116,0,0,244,0,2,0,92,116,0,0,33,118,0,0,184,4,2,0,76,118,0,0,148,118,0,0,212,4,2,0,148,118,0,0,215, - 118,0,0,220,4,2,0,232,118,0,0,152,120,0,0,248,4,2,0,152,120,0,0,184,121,0,0,248,4,2,0,184,121,0,0,243,121,0,0,16,5,2,0,244,121,0,0,47,122,0,0,52,5,2,0,56,122,0,0,123,122,0,0,88,5,2,0,124,122,0,0,239,122,0,0,4,1,2,0,240,122,0,0,10,123,0,0,252, - 0,2,0,12,123,0,0,38,123,0,0,252,0,2,0,40,123,0,0,105,123,0,0,104,5,2,0,108,123,0,0,173,123,0,0,104,5,2,0,176,123,0,0,191,124,0,0,116,5,2,0,192,124,0,0,1,125,0,0,104,5,2,0,4,125,0,0,75,125,0,0,4,1,2,0,96,125,0,0,225,126,0,0,56,1,2,0,228,126,0, - 0,247,126,0,0,140,5,2,0,248,126,0,0,97,127,0,0,148,5,2,0,100,127,0,0,72,128,0,0,248,4,2,0,72,128,0,0,142,128,0,0,252,0,2,0,144,128,0,0,193,129,0,0,156,5,2,0,4,130,0,0,159,130,0,0,76,2,2,0,160,130,0,0,80,131,0,0,180,5,2,0,80,131,0,0,95,131,0, - 0,196,5,2,0,95,131,0,0,168,131,0,0,204,5,2,0,168,131,0,0,183,131,0,0,224,5,2,0,192,131,0,0,54,132,0,0,76,2,2,0,56,132,0,0,210,139,0,0,240,5,2,0,240,139,0,0,26,140,0,0,12,6,2,0,88,143,0,0,9,144,0,0,180,5,2,0,144,144,0,0,221,144,0,0,44,6,2,0,240, - 144,0,0,8,145,0,0,80,6,2,0,16,145,0,0,17,145,0,0,84,6,2,0,32,145,0,0,33,145,0,0,88,6,2,0,92,145,0,0,178,145,0,0,252,0,2,0,180,145,0,0,251,145,0,0,252,0,2,0,252,145,0,0,30,146,0,0,252,0,2,0,32,146,0,0,57,146,0,0,252,0,2,0,60,146,0,0,251,146,0, - 0,76,2,2,0,252,146,0,0,73,147,0,0,244,0,2,0,80,147,0,0,111,147,0,0,252,0,2,0,120,147,0,0,222,147,0,0,244,0,2,0,224,147,0,0,7,148,0,0,252,0,2,0,20,148,0,0,79,148,0,0,4,1,2,0,80,148,0,0,121,148,0,0,244,0,2,0,132,148,0,0,113,149,0,0,220,2,2,0,116, - 149,0,0,66,150,0,0,92,6,2,0,68,150,0,0,244,150,0,0,116,6,2,0,104,152,0,0,226,152,0,0,244,0,2,0,120,154,0,0,2,156,0,0,132,6,2,0,4,156,0,0,154,156,0,0,56,1,2,0,160,156,0,0,138,158,0,0,208,6,2,0,140,158,0,0,133,161,0,0,12,7,2,0,144,161,0,0,224, - 163,0,0,84,7,2,0,28,164,0,0,88,164,0,0,244,0,2,0,88,164,0,0,222,164,0,0,4,1,2,0,224,164,0,0,16,165,0,0,4,1,2,0,16,165,0,0,253,165,0,0,176,7,2,0,0,166,0,0,136,166,0,0,56,1,2,0,144,166,0,0,235,166,0,0,204,7,2,0,236,166,0,0,41,168,0,0,244,7,2,0, - 44,168,0,0,110,169,0,0,244,7,2,0,112,169,0,0,110,171,0,0,12,8,2,0,112,171,0,0,113,173,0,0,76,8,2,0,116,173,0,0,52,174,0,0,140,8,2,0,52,174,0,0,245,174,0,0,184,8,2,0,248,174,0,0,47,177,0,0,228,8,2,0,48,177,0,0,196,179,0,0,252,8,2,0,196,179,0, - 0,153,184,0,0,20,9,2,0,156,184,0,0,151,189,0,0,52,9,2,0,152,189,0,0,105,190,0,0,84,9,2,0,108,190,0,0,133,192,0,0,108,9,2,0,136,192,0,0,89,193,0,0,84,9,2,0,92,193,0,0,75,196,0,0,136,9,2,0,76,196,0,0,167,196,0,0,168,9,2,0,168,196,0,0,197,196,0, - 0,252,0,2,0,224,196,0,0,254,196,0,0,176,9,2,0,16,197,0,0,32,197,0,0,184,9,2,0,48,197,0,0,165,203,0,0,196,9,2,0,168,203,0,0,7,204,0,0,244,0,2,0,8,204,0,0,78,204,0,0,244,0,2,0,80,204,0,0,135,204,0,0,244,0,2,0,144,204,0,0,179,204,0,0,200,9,2,0, - 192,204,0,0,1,205,0,0,244,0,2,0,4,205,0,0,72,205,0,0,252,0,2,0,104,205,0,0,216,205,0,0,76,2,2,0,216,205,0,0,196,206,0,0,208,9,2,0,196,206,0,0,33,207,0,0,4,1,2,0,36,207,0,0,124,207,0,0,244,0,2,0,124,207,0,0,56,209,0,0,184,4,2,0,64,209,0,0,136, - 209,0,0,244,0,2,0,144,209,0,0,199,209,0,0,244,0,2,0,0,210,0,0,28,210,0,0,252,0,2,0,48,210,0,0,105,210,0,0,252,0,2,0,112,210,0,0,146,210,0,0,252,0,2,0,148,210,0,0,103,211,0,0,76,2,2,0,104,211,0,0,10,212,0,0,244,0,2,0,12,212,0,0,212,212,0,0,76, - 2,2,0,212,212,0,0,21,213,0,0,244,0,2,0,24,213,0,0,214,213,0,0,76,2,2,0,224,213,0,0,0,214,0,0,228,9,2,0,0,214,0,0,103,214,0,0,4,1,2,0,104,214,0,0,53,215,0,0,236,9,2,0,56,215,0,0,45,216,0,0,244,9,2,0,48,216,0,0,111,216,0,0,252,9,2,0,112,216,0, - 0,181,216,0,0,32,10,2,0,184,216,0,0,23,217,0,0,68,10,2,0,24,217,0,0,85,217,0,0,104,10,2,0,96,217,0,0,155,217,0,0,140,10,2,0,160,217,0,0,224,217,0,0,4,1,2,0,224,217,0,0,205,218,0,0,172,10,2,0,208,218,0,0,216,219,0,0,244,7,2,0,224,219,0,0,5,220, - 0,0,252,0,2,0,20,220,0,0,48,220,0,0,252,0,2,0,48,220,0,0,144,220,0,0,252,0,2,0,144,220,0,0,77,223,0,0,200,10,2,0,80,223,0,0,205,223,0,0,232,10,2,0,208,223,0,0,104,224,0,0,4,1,2,0,104,224,0,0,32,225,0,0,240,10,2,0,32,225,0,0,143,227,0,0,24,11, - 2,0,144,227,0,0,119,229,0,0,48,11,2,0,120,229,0,0,70,231,0,0,76,11,2,0,72,231,0,0,132,231,0,0,228,9,2,0,132,231,0,0,24,232,0,0,76,2,2,0,24,232,0,0,94,232,0,0,4,1,2,0,96,232,0,0,126,232,0,0,140,5,2,0,128,232,0,0,199,232,0,0,252,0,2,0,200,232, - 0,0,35,234,0,0,112,11,2,0,44,234,0,0,248,234,0,0,144,11,2,0,248,234,0,0,98,235,0,0,164,11,2,0,100,235,0,0,176,235,0,0,76,2,2,0,176,235,0,0,75,236,0,0,180,11,2,0,108,236,0,0,154,236,0,0,192,11,2,0,156,236,0,0,21,239,0,0,200,11,2,0,24,239,0,0, - 96,239,0,0,8,12,2,0,204,239,0,0,158,240,0,0,44,12,2,0,160,240,0,0,44,241,0,0,56,1,2,0,44,241,0,0,137,241,0,0,60,12,2,0,140,241,0,0,40,242,0,0,68,12,2,0,40,242,0,0,9,243,0,0,104,12,2,0,48,243,0,0,79,244,0,0,244,7,2,0,80,244,0,0,171,244,0,0,244, - 0,2,0,224,244,0,0,15,245,0,0,244,0,2,0,16,245,0,0,48,245,0,0,252,0,2,0,48,245,0,0,80,245,0,0,252,0,2,0,80,245,0,0,151,245,0,0,244,0,2,0,224,245,0,0,2,246,0,0,244,0,2,0,4,246,0,0,121,246,0,0,244,0,2,0,132,246,0,0,197,248,0,0,144,12,2,0,200,248, - 0,0,65,250,0,0,116,5,2,0,68,250,0,0,207,251,0,0,168,12,2,0,208,251,0,0,84,253,0,0,192,12,2,0,84,253,0,0,161,0,1,0,220,12,2,0,196,0,1,0,229,1,1,0,252,12,2,0,232,1,1,0,1,3,1,0,24,13,2,0,24,3,1,0,139,3,1,0,44,13,2,0,140,3,1,0,33,4,1,0,56,1,2,0, - 180,4,1,0,146,5,1,0,60,13,2,0,148,5,1,0,162,6,1,0,168,12,2,0,164,6,1,0,149,7,1,0,72,13,2,0,152,7,1,0,201,7,1,0,244,0,2,0,204,7,1,0,253,7,1,0,244,0,2,0,0,8,1,0,53,8,1,0,244,0,2,0,56,8,1,0,109,8,1,0,244,0,2,0,128,8,1,0,174,8,1,0,192,11,2,0,176, - 8,1,0,30,9,1,0,80,13,2,0,32,9,1,0,140,9,1,0,120,13,2,0,140,9,1,0,234,9,1,0,244,0,2,0,236,9,1,0,55,10,1,0,4,1,2,0,64,10,1,0,133,10,1,0,244,0,2,0,136,10,1,0,206,10,1,0,244,0,2,0,208,10,1,0,22,11,1,0,244,0,2,0,24,11,1,0,105,11,1,0,4,1,2,0,108,11, - 1,0,205,11,1,0,76,2,2,0,208,11,1,0,30,13,1,0,184,4,2,0,48,13,1,0,112,13,1,0,136,13,2,0,128,13,1,0,170,13,1,0,144,13,2,0,176,13,1,0,214,13,1,0,152,13,2,0,224,13,1,0,39,14,1,0,160,13,2,0,40,14,1,0,173,14,1,0,244,7,2,0,176,14,1,0,217,14,1,0,168, - 13,2,0,220,14,1,0,120,15,1,0,176,13,2,0,120,15,1,0,139,15,1,0,252,0,2,0,144,15,1,0,98,16,1,0,184,13,2,0,100,16,1,0,209,16,1,0,192,13,2,0,212,16,1,0,69,17,1,0,204,13,2,0,72,17,1,0,124,17,1,0,244,0,2,0,144,17,1,0,13,18,1,0,216,13,2,0,60,18,1,0, - 223,18,1,0,248,4,2,0,108,19,1,0,20,20,1,0,252,0,2,0,20,20,1,0,138,21,1,0,56,1,2,0,220,21,1,0,19,22,1,0,228,9,2,0,20,22,1,0,130,22,1,0,220,13,2,0,132,22,1,0,233,22,1,0,4,1,2,0,236,22,1,0,97,23,1,0,252,0,2,0,100,23,1,0,30,24,1,0,220,3,2,0,32,24, - 1,0,197,24,1,0,56,1,2,0,200,24,1,0,24,25,1,0,0,14,2,0,24,25,1,0,192,25,1,0,16,14,2,0,16,26,1,0,159,27,1,0,60,14,2,0,160,27,1,0,54,28,1,0,100,14,2,0,56,28,1,0,105,31,1,0,116,14,2,0,112,31,1,0,135,31,1,0,252,0,2,0,136,31,1,0,25,32,1,0,156,14,2, - 0,28,32,1,0,167,32,1,0,164,14,2,0,168,32,1,0,207,32,1,0,252,0,2,0,208,32,1,0,214,35,1,0,200,14,2,0,216,35,1,0,245,36,1,0,224,14,2,0,248,36,1,0,109,41,1,0,12,15,2,0,112,41,1,0,114,42,1,0,64,15,2,0,116,42,1,0,141,43,1,0,64,15,2,0,144,43,1,0,0, - 45,1,0,96,15,2,0,0,45,1,0,178,45,1,0,132,15,2,0,180,45,1,0,246,45,1,0,244,0,2,0,248,45,1,0,87,46,1,0,252,0,2,0,96,46,1,0,187,46,1,0,168,15,2,0,187,46,1,0,80,50,1,0,192,15,2,0,80,50,1,0,110,50,1,0,228,15,2,0,112,50,1,0,95,51,1,0,76,2,2,0,96,51, - 1,0,40,55,1,0,244,15,2,0,40,55,1,0,198,55,1,0,4,16,2,0,208,55,1,0,100,56,1,0,20,16,2,0,100,56,1,0,157,56,1,0,252,0,2,0,160,56,1,0,26,57,1,0,4,1,2,0,28,57,1,0,163,57,1,0,208,9,2,0,164,57,1,0,174,58,1,0,32,16,2,0,176,58,1,0,28,59,1,0,228,9,2,0, - 28,59,1,0,36,60,1,0,40,16,2,0,36,60,1,0,86,60,1,0,4,1,2,0,112,60,1,0,55,61,1,0,56,16,2,0,64,61,1,0,184,62,1,0,116,5,2,0,32,63,1,0,110,63,1,0,64,16,2,0,144,63,1,0,57,64,1,0,144,11,2,0,60,64,1,0,127,64,1,0,232,10,2,0,128,64,1,0,34,66,1,0,72,16, - 2,0,36,66,1,0,95,66,1,0,96,16,2,0,96,66,1,0,223,66,1,0,244,7,2,0,224,66,1,0,120,67,1,0,44,12,2,0,120,67,1,0,29,68,1,0,104,16,2,0,32,68,1,0,154,68,1,0,120,16,2,0,156,68,1,0,117,70,1,0,156,16,2,0,120,70,1,0,202,70,1,0,232,10,2,0,204,70,1,0,138, - 71,1,0,24,13,2,0,144,71,1,0,172,71,1,0,252,0,2,0,172,71,1,0,121,72,1,0,76,2,2,0,124,72,1,0,61,73,1,0,184,16,2,0,64,73,1,0,183,73,1,0,192,16,2,0,224,73,1,0,139,79,1,0,232,16,2,0,168,79,1,0,13,80,1,0,244,16,2,0,16,80,1,0,202,80,1,0,76,2,2,0,204, - 80,1,0,243,81,1,0,252,16,2,0,0,82,1,0,112,82,1,0,28,17,2,0,112,82,1,0,6,83,1,0,36,17,2,0,16,83,1,0,48,83,1,0,140,5,2,0,64,83,1,0,80,83,1,0,48,17,2,0,144,83,1,0,192,83,1,0,252,0,2,0,192,83,1,0,231,83,1,0,92,1,2,0,232,83,1,0,240,86,1,0,56,17,2, - 0,240,86,1,0,13,87,1,0,244,0,2,0,16,87,1,0,140,87,1,0,76,17,2,0,140,87,1,0,157,87,1,0,252,0,2,0,160,87,1,0,191,87,1,0,244,0,2,0,208,87,1,0,213,87,1,0,120,1,2,0,240,87,1,0,246,87,1,0,128,1,2,0,246,87,1,0,20,88,1,0,212,0,2,0,20,88,1,0,44,88,1, - 0,48,1,2,0,44,88,1,0,67,88,1,0,192,1,2,0,67,88,1,0,92,88,1,0,192,1,2,0,92,88,1,0,112,88,1,0,192,1,2,0,112,88,1,0,166,88,1,0,68,2,2,0,166,88,1,0,73,89,1,0,132,3,2,0,73,89,1,0,250,89,1,0,132,3,2,0,250,89,1,0,144,90,1,0,208,3,2,0,144,90,1,0,166, - 90,1,0,192,1,2,0,166,90,1,0,192,90,1,0,192,1,2,0,192,90,1,0,237,90,1,0,192,1,2,0,240,90,1,0,16,91,1,0,192,1,2,0,16,91,1,0,44,91,1,0,236,7,2,0,44,91,1,0,81,91,1,0,192,1,2,0,81,91,1,0,215,91,1,0,208,3,2,0,215,91,1,0,6,92,1,0,192,1,2,0,6,92,1,0, - 151,92,1,0,208,3,2,0,151,92,1,0,173,92,1,0,192,1,2,0,173,92,1,0,208,92,1,0,192,1,2,0,208,92,1,0,230,92,1,0,68,2,2,0,230,92,1,0,9,93,1,0,68,2,2,0,9,93,1,0,34,93,1,0,192,1,2,0,34,93,1,0,60,93,1,0,192,1,2,0,60,93,1,0,85,93,1,0,192,1,2,0,85,93,1, - 0,118,93,1,0,192,1,2,0,118,93,1,0,145,93,1,0,192,1,2,0,145,93,1,0,174,93,1,0,192,1,2,0,174,93,1,0,200,93,1,0,192,1,2,0,200,93,1,0,225,93,1,0,192,1,2,0,225,93,1,0,251,93,1,0,192,1,2,0,251,93,1,0,18,94,1,0,68,2,2,0,18,94,1,0,43,94,1,0,192,1,2, - 0,43,94,1,0,67,94,1,0,68,2,2,0,67,94,1,0,111,94,1,0,192,1,2,0,207,94,1,0,34,95,1,0,252,234,1,0,58,95,1,0,141,95,1,0,252,234,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,140,0,0,0,0,0,0,0,112,162,92,92,196,158,148,223,141,0,0,0,0,0,0,0,112,59,89,62,117,166,153,151,142,0,0,0,0,0, - 0,0,112,59,89,62,117,166,153,151,143,0,0,0,0,0,0,0,112,162,92,92,196,158,148,223,144,0,0,0,0,0,0,0,112,162,92,92,196,158,148,223,9,0,0,0,0,0,0,0,112,162,92,92,196,158,148,223,12,0,0,0,0,0,0,0,112,162,92,92,196,158,148,223,15,0,0,0,0,0,0,0,112, - 59,89,62,117,166,153,151,18,0,0,0,0,0,0,0,112,162,92,92,196,158,148,223,21,0,0,0,0,0,0,0,112,59,89,62,117,166,153,151,24,0,0,0,0,0,0,0,112,162,92,92,196,158,148,223,27,0,0,0,0,0,0,0,112,59,89,62,117,166,153,151,30,0,0,0,0,0,0,0,112,162,92,92, - 196,158,148,223,33,0,0,0,0,0,0,0,112,59,89,62,117,166,153,151,36,0,0,0,0,0,0,0,112,59,89,62,117,166,153,151,39,0,0,0,0,0,0,0,112,59,89,62,117,166,153,151,42,0,0,0,0,0,0,0,112,59,89,62,117,166,153,151,63,0,0,0,0,0,0,0,112,32,211,28,223,15,237, - 209,66,0,0,0,0,0,0,0,112,144,91,18,231,158,112,206,70,0,0,0,0,0,0,0,112,195,88,118,91,135,80,255,171,0,0,0,0,0,0,0,112,48,82,94,71,39,5,211,176,0,0,0,0,0,0,0,112,115,215,80,73,134,193,198,189,0,0,0,0,0,0,0,112,72,218,86,150,62,241,133,192,0, - 0,0,0,0,0,0,112,144,91,18,231,158,112,206,201,0,0,0,0,0,0,0,112,123,90,94,155,135,1,162,208,0,0,0,0,0,0,0,112,162,92,92,196,158,148,223,209,0,0,0,0,0,0,0,112,123,90,94,155,135,1,162,213,0,0,0,0,0,0,0,112,24,208,62,105,6,221,210,214,0,0,0,0,0, - 0,0,112,162,208,54,121,166,188,181,223,0,0,0,0,0,0,0,112,160,220,50,37,142,160,214,204,0,0,0,0,0,0,0,112,50,209,16,192,166,197,233,215,0,0,0,0,0,0,0,112,32,90,120,127,62,217,148,240,0,0,0,0,0,0,0,112,138,89,122,190,62,93,213,166,0,0,0,0,0,0, - 0,112,192,210,86,138,39,213,128,167,0,0,0,0,0,0,0,112,178,209,48,98,54,108,160,168,0,0,0,0,0,0,0,112,192,210,86,138,39,213,128,169,0,0,0,0,0,0,0,112,210,218,126,186,182,29,203,180,0,0,0,0,0,0,0,112,58,222,80,57,55,152,140,191,0,0,0,0,0,0,0,112, - 58,222,80,57,55,152,140,201,0,0,0,0,0,0,0,112,187,89,52,77,7,204,146,206,0,0,0,0,0,0,0,112,169,219,120,170,134,240,181,103,1,0,0,0,0,0,0,112,48,82,94,71,39,5,211,120,1,0,0,0,0,0,0,112,72,218,86,150,62,241,133,141,1,0,0,0,0,0,0,112,48,82,94,71, - 39,5,211,143,1,0,0,0,0,0,0,112,225,222,26,242,62,8,166,145,1,0,0,0,0,0,0,112,35,211,80,86,150,108,199,147,1,0,0,0,0,0,0,112,75,92,20,68,62,212,216,148,1,0,0,0,0,0,0,112,250,208,122,253,159,148,138,161,1,0,0,0,0,0,0,112,73,212,60,232,54,45,176, - 15,0,0,0,0,0,0,0,112,234,209,62,212,150,149,139,16,0,0,0,0,0,0,0,112,186,217,52,186,143,28,218,34,0,0,0,0,0,0,0,112,74,222,82,131,30,212,184,35,0,0,0,0,0,0,0,112,74,222,82,131,30,212,184,125,0,0,0,0,0,0,0,112,123,93,24,82,30,16,170,145,0,0,0, - 0,0,0,0,112,83,216,28,102,63,93,136,146,0,0,0,0,0,0,0,112,83,216,28,102,63,93,136,68,0,0,0,0,0,0,0,112,64,86,30,89,166,192,254,69,0,0,0,0,0,0,0,112,248,210,52,12,30,137,221,70,0,0,0,0,0,0,0,112,64,86,30,89,166,192,254,80,0,0,0,0,0,0,0,112,48, - 220,54,32,38,196,255,95,1,0,0,0,0,0,0,112,200,91,90,248,30,93,194,126,1,0,0,0,0,0,0,112,43,216,90,94,175,185,190,129,1,0,0,0,0,0,0,112,242,91,30,240,54,136,173,172,1,0,0,0,0,0,0,112,51,212,82,0,158,124,181,12,0,0,0,0,0,0,0,112,144,91,18,231, - 158,112,206,12,0,0,0,0,0,0,0,112,168,83,20,211,143,244,167,24,0,0,0,0,0,0,0,112,72,218,86,150,62,241,133,11,0,0,0,0,0,0,0,112,64,86,30,89,166,192,254,115,0,0,0,0,0,0,0,112,81,89,58,69,166,37,173,116,0,0,0,0,0,0,0,112,48,86,88,78,31,104,239,175, - 1,0,0,0,0,0,0,112,131,91,92,64,46,208,181,18,0,0,0,0,0,0,0,112,72,218,86,150,62,241,133,17,0,0,0,0,0,0,0,112,145,216,52,82,159,0,222,22,2,0,0,0,0,0,0,112,162,92,92,196,158,148,223,23,2,0,0,0,0,0,0,112,59,89,62,117,166,153,151,26,2,0,0,0,0,0, - 0,112,48,82,94,71,39,5,211,29,2,0,0,0,0,0,0,112,241,88,124,246,15,116,136,30,2,0,0,0,0,0,0,112,227,86,26,117,14,121,252,31,2,0,0,0,0,0,0,112,202,88,30,128,14,169,190,32,2,0,0,0,0,0,0,112,80,85,22,4,190,93,167,41,2,0,0,0,0,0,0,112,218,210,50, - 80,62,160,130,43,2,0,0,0,0,0,0,112,226,87,80,98,31,161,227,45,2,0,0,0,0,0,0,112,50,216,84,35,6,221,234,52,2,0,0,0,0,0,0,112,139,221,18,13,158,253,244,76,2,0,0,0,0,0,0,112,202,223,16,83,166,221,253,34,0,0,0,0,0,0,0,112,162,92,92,196,158,148,223, - 35,0,0,0,0,0,0,0,112,59,89,62,117,166,153,151,36,0,0,0,0,0,0,0,112,184,93,82,15,166,232,195,37,0,0,0,0,0,0,0,112,184,93,82,15,166,232,195,28,0,0,0,0,0,0,0,112,162,92,92,196,158,148,223,29,0,0,0,0,0,0,0,112,59,89,62,117,166,153,151,31,1,0,0,0, - 0,0,0,112,162,92,92,196,158,148,223,32,1,0,0,0,0,0,0,112,59,89,62,117,166,153,151,36,1,0,0,0,0,0,0,112,50,218,22,61,175,201,212,37,1,0,0,0,0,0,0,112,50,218,22,61,175,201,212,38,1,0,0,0,0,0,0,112,50,218,22,61,175,201,212,39,1,0,0,0,0,0,0,112, - 72,218,86,150,62,241,133,50,1,0,0,0,0,0,0,112,193,220,122,76,190,165,239,51,1,0,0,0,0,0,0,112,144,91,18,231,158,112,206,52,1,0,0,0,0,0,0,112,66,93,80,54,55,192,170,62,1,0,0,0,0,0,0,112,48,88,30,56,46,213,206,70,1,0,0,0,0,0,0,112,48,88,30,56, - 46,213,206,87,1,0,0,0,0,0,0,112,88,220,52,231,151,177,172,92,1,0,0,0,0,0,0,112,72,210,90,125,167,180,245,97,1,0,0,0,0,0,0,112,171,209,92,11,7,76,255,102,1,0,0,0,0,0,0,112,185,210,20,215,182,61,220,41,0,0,0,0,0,0,0,112,162,92,92,196,158,148,223, - 42,0,0,0,0,0,0,0,112,59,89,62,117,166,153,151,48,0,0,0,0,0,0,0,112,72,218,86,150,62,241,133,49,0,0,0,0,0,0,0,112,72,218,86,150,62,241,133,85,0,0,0,0,0,0,0,112,162,92,92,196,158,148,223,86,0,0,0,0,0,0,0,112,59,89,62,117,166,153,151,238,0,0,0, - 0,0,0,0,112,89,219,82,193,23,245,142,241,0,0,0,0,0,0,0,112,162,92,92,196,158,148,223,8,1,0,0,0,0,0,0,112,49,92,60,173,23,184,160,9,1,0,0,0,0,0,0,112,120,210,116,218,190,213,167,10,1,0,0,0,0,0,0,112,242,92,86,121,14,140,148,11,1,0,0,0,0,0,0,112, - 194,217,92,28,167,189,138,12,1,0,0,0,0,0,0,112,33,95,124,138,30,253,162,24,1,0,0,0,0,0,0,112,242,92,86,121,14,140,148,32,1,0,0,0,0,0,0,112,243,82,28,26,167,201,255,16,0,0,0,0,0,0,0,112,144,91,18,231,158,112,206,15,0,0,0,0,0,0,0,112,27,83,80, - 174,159,40,233,16,0,0,0,0,0,0,0,112,27,83,80,174,159,40,233,175,0,0,0,0,0,0,0,112,72,218,86,150,62,241,133,177,0,0,0,0,0,0,0,112,42,87,52,72,31,188,214,196,0,0,0,0,0,0,0,112,17,89,58,165,190,168,250,197,0,0,0,0,0,0,0,112,144,91,18,231,158,112, - 206,201,0,0,0,0,0,0,0,112,240,84,126,197,39,248,249,212,0,0,0,0,0,0,0,112,43,216,90,94,175,185,190,226,0,0,0,0,0,0,0,112,137,216,116,89,39,48,171,231,0,0,0,0,0,0,0,112,42,87,52,72,31,188,214,135,0,0,0,0,0,0,0,112,144,91,18,231,158,112,206,140, - 0,0,0,0,0,0,0,112,9,214,88,197,167,149,194,145,0,0,0,0,0,0,0,112,120,210,116,218,190,213,167,163,0,0,0,0,0,0,0,112,19,217,62,90,62,125,224,49,0,0,0,0,0,0,0,112,144,91,18,231,158,112,206,50,0,0,0,0,0,0,0,112,162,92,92,196,158,148,223,51,0,0,0, - 0,0,0,0,112,113,84,88,230,7,136,216,27,1,0,0,0,0,0,0,112,48,82,94,71,39,5,211,30,1,0,0,0,0,0,0,112,154,90,124,7,159,137,173,42,1,0,0,0,0,0,0,112,251,89,24,177,166,168,134,62,1,0,0,0,0,0,0,112,27,214,52,81,7,165,132,77,1,0,0,0,0,0,0,112,24,219, - 62,243,46,241,162,82,1,0,0,0,0,0,0,112,161,93,114,221,151,180,137,81,0,0,0,0,0,0,0,112,170,218,54,199,167,92,233,82,0,0,0,0,0,0,0,112,170,218,54,199,167,92,233,86,0,0,0,0,0,0,0,112,48,82,94,71,39,5,211,91,0,0,0,0,0,0,0,112,72,218,86,150,62,241, - 133,38,0,0,0,0,0,0,0,112,162,92,92,196,158,148,223,39,0,0,0,0,0,0,0,112,162,92,92,196,158,148,223,85,0,0,0,0,0,0,0,112,34,80,80,99,142,88,255,69,0,0,0,0,0,0,0,112,58,215,124,67,30,201,215,72,0,0,0,0,0,0,0,112,97,88,62,171,7,133,181,76,0,0,0, - 0,0,0,0,112,58,210,80,58,143,124,188,77,0,0,0,0,0,0,0,112,227,86,26,117,14,121,252,78,0,0,0,0,0,0,0,112,216,218,120,187,6,21,238,12,0,0,0,0,0,0,0,112,200,222,126,236,182,196,156,9,2,0,0,0,0,0,0,112,120,88,24,146,6,117,189,58,2,0,0,0,0,0,0,112, - 120,88,24,146,6,117,189,61,2,0,0,0,0,0,0,112,41,82,58,29,39,240,188,63,2,0,0,0,0,0,0,112,42,90,92,104,143,72,170,72,2,0,0,0,0,0,0,112,82,215,58,223,30,65,144,73,2,0,0,0,0,0,0,112,8,209,16,47,7,245,253,110,2,0,0,0,0,0,0,112,137,222,94,149,183, - 117,147,102,0,0,0,0,0,0,0,112,202,208,90,241,38,205,233,130,0,0,0,0,0,0,0,112,104,85,24,140,150,236,202,160,0,0,0,0,0,0,0,112,34,88,48,236,7,77,254,164,0,0,0,0,0,0,0,112,203,91,84,244,54,4,182,18,0,0,0,0,0,0,0,112,168,83,16,15,174,128,181,16, - 0,0,0,0,0,0,0,112,114,210,24,13,23,133,143,16,0,0,0,0,0,0,0,112,64,92,120,86,46,245,231,120,0,0,0,0,0,0,0,112,17,87,120,50,143,88,181,48,0,0,0,0,0,0,0,112,82,219,52,252,63,25,242,49,0,0,0,0,0,0,0,112,90,218,84,16,62,85,239,50,0,0,0,0,0,0,0,112, - 219,218,126,155,143,172,162,51,0,0,0,0,0,0,0,112,161,214,116,65,174,168,195,52,0,0,0,0,0,0,0,112,106,221,56,205,143,224,178,248,1,0,0,0,0,0,0,112,72,218,86,150,62,241,133,19,2,0,0,0,0,0,0,112,72,218,86,150,62,241,133,82,2,0,0,0,0,0,0,112,210, - 221,18,159,62,213,189,15,0,0,0,0,0,0,0,112,120,220,60,117,183,13,188,13,0,0,0,0,0,0,0,112,168,83,20,211,143,244,167,12,0,0,0,0,0,0,0,112,200,222,126,236,182,196,156,11,0,0,0,0,0,0,0,112,202,214,82,134,39,44,217,180,4,0,0,0,0,0,0,112,203,91,26, - 148,142,169,238,64,0,0,0,0,0,0,0,112,210,218,120,169,134,112,190,65,0,0,0,0,0,0,0,112,210,218,120,169,134,112,190,66,0,0,0,0,0,0,0,112,210,218,120,169,134,112,190,67,0,0,0,0,0,0,0,112,250,211,58,151,182,89,181,68,0,0,0,0,0,0,0,112,250,211,58, - 151,182,89,181,69,0,0,0,0,0,0,0,112,49,91,26,149,15,200,255,73,0,0,0,0,0,0,0,112,96,216,30,44,22,105,139,79,0,0,0,0,0,0,0,112,32,90,54,157,47,12,204,86,0,0,0,0,0,0,0,112,10,214,58,126,175,209,250,104,0,0,0,0,0,0,0,112,120,210,116,218,190,213, - 167,106,0,0,0,0,0,0,0,112,9,221,20,82,142,108,156,107,0,0,0,0,0,0,0,112,11,86,120,28,191,208,252,108,0,0,0,0,0,0,0,112,120,210,116,218,190,213,167,109,0,0,0,0,0,0,0,112,115,215,80,73,134,193,198,110,0,0,0,0,0,0,0,112,115,215,80,73,134,193,198, - 69,0,0,0,0,0,0,0,112,144,223,114,176,14,149,205,77,0,0,0,0,0,0,0,112,251,87,122,84,159,209,251,90,0,0,0,0,0,0,0,112,251,87,122,84,159,209,251,9,0,0,0,0,0,0,0,112,48,82,94,71,39,5,211,46,0,0,0,0,0,0,0,112,120,210,116,218,190,213,167,61,0,0,0, - 0,0,0,0,112,67,221,62,30,190,168,234,34,0,0,0,0,0,0,0,112,154,90,124,7,159,137,173,189,0,0,0,0,0,0,0,112,171,212,122,237,142,93,139,191,0,0,0,0,0,0,0,112,171,212,122,237,142,93,139,217,0,0,0,0,0,0,0,112,96,213,118,163,182,200,202,219,0,0,0,0, - 0,0,0,112,192,93,80,124,15,177,187,220,0,0,0,0,0,0,0,112,192,93,80,124,15,177,187,221,0,0,0,0,0,0,0,112,192,93,80,124,15,177,187,39,0,0,0,0,0,0,0,112,48,82,94,71,39,5,211,57,0,0,0,0,0,0,0,112,170,218,54,199,167,92,233,12,0,0,0,0,0,0,0,112,120, - 210,116,218,190,213,167,35,0,0,0,0,0,0,0,112,48,82,94,71,39,5,211,25,0,0,0,0,0,0,0,112,122,81,20,51,63,16,196,17,0,0,0,0,0,0,0,112,211,223,60,202,55,137,155,16,0,0,0,0,0,0,0,112,1,223,80,108,159,116,155,17,0,0,0,0,0,0,0,112,1,223,80,108,159, - 116,155,50,0,0,0,0,0,0,0,112,1,223,80,108,159,116,155,51,0,0,0,0,0,0,0,112,203,88,48,75,135,133,186,17,0,0,0,0,0,0,0,112,155,93,18,136,30,104,187,15,0,0,0,0,0,0,0,112,211,92,90,123,62,89,181,12,0,0,0,0,0,0,0,112,209,210,84,127,6,73,145,63,0, - 0,0,0,0,0,0,112,202,217,120,84,151,173,195,44,0,0,0,0,0,0,0,112,202,217,120,84,151,173,195,88,0,0,0,0,0,0,0,112,2,211,92,77,47,181,238,99,0,0,0,0,0,0,0,112,250,210,116,60,55,57,206,12,0,0,0,0,0,0,0,112,201,82,116,96,159,189,162,139,0,0,0,0,0, - 0,0,112,59,209,56,232,54,81,134,70,0,0,0,0,0,0,0,112,202,214,82,134,39,44,217,39,0,0,0,0,0,0,0,112,9,86,22,73,143,101,214,11,0,0,0,0,0,0,0,112,113,213,94,195,159,80,230,173,0,0,0,0,0,0,0,112,152,92,28,253,143,76,227,200,0,0,0,0,0,0,0,112,152, - 92,28,253,143,76,227,175,0,0,0,0,0,0,0,112,185,83,86,17,23,196,151,176,0,0,0,0,0,0,0,112,138,210,92,13,135,180,204,54,0,0,0,0,0,0,0,112,99,90,52,207,30,45,133,152,0,0,0,0,0,0,0,112,154,90,124,7,159,137,173,185,0,0,0,0,0,0,0,112,251,89,24,177, - 166,168,134,186,0,0,0,0,0,0,0,112,251,89,24,177,166,168,134,96,0,0,0,0,0,0,0,112,40,212,122,191,174,164,184,42,0,0,0,0,0,0,0,112,48,82,94,71,39,5,211,43,0,0,0,0,0,0,0,112,200,94,126,69,47,81,155,45,0,0,0,0,0,0,0,112,72,218,86,150,62,241,133, - 166,0,0,0,0,0,0,0,112,0,94,92,18,54,65,202,167,0,0,0,0,0,0,0,112,0,94,92,18,54,65,202,194,0,0,0,0,0,0,0,112,48,86,22,243,151,228,199,114,0,0,0,0,0,0,0,112,187,82,124,201,22,25,133,23,0,0,0,0,0,0,0,112,194,82,84,180,55,40,253,24,0,0,0,0,0,0,0, - 112,193,211,82,32,166,228,217,38,0,0,0,0,0,0,0,112,139,219,118,227,135,88,244,39,0,0,0,0,0,0,0,112,18,88,50,195,159,60,203,43,0,0,0,0,0,0,0,112,128,222,126,117,38,232,216,27,0,0,0,0,0,0,0,112,48,82,94,71,39,5,211,36,0,0,0,0,0,0,0,112,75,86,20, - 39,134,21,190,38,0,0,0,0,0,0,0,112,11,209,30,206,183,200,163,69,0,0,0,0,0,0,0,112,115,215,80,73,134,193,198,76,0,0,0,0,0,0,0,112,168,208,126,242,183,121,213,79,0,0,0,0,0,0,0,112,115,208,94,156,191,24,170,28,0,0,0,0,0,0,0,112,40,85,80,128,183, - 108,205,29,0,0,0,0,0,0,0,112,203,213,48,7,190,44,152,30,0,0,0,0,0,0,0,112,40,85,80,128,183,108,205,31,0,0,0,0,0,0,0,112,202,218,26,182,23,184,153,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,101,116,112,111,108,105,110,101,86,49,0,16,0,0,0,23,0,0,0,5,0,0,0,51,0,0,0,16,0,0,0,25,0,0,0,5,0,0,0,23,0,0,0,16,0,0,0,35,0,0,0,5,0,0,0,76,0,0,0,0, - 0,0,0,82,101,116,112,111,108,105,110,101,86,49,0,16,0,0,0,3,0,0,0,4,0,0,0,16,0,0,0,82,101,116,112,111,108,105,110,101,86,49,0,0,0,0,0,0,0,0,0,82,101,116,112,111,108,105,110,101,86,49,0,16,0,0,0,3,0,0,0,8,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,105,0,0,46,105,0,0,59,105,0,0,41,105,0,0,100,105,0,0,84,105,0,0,55,105,0,0,37,105,0,0,138,105,0,0,119,105,0,0,128,105,0,0,105,105,0,0,96,105,0,0,80,105,0,0,51,105,0,0,33,105,0,0,187,106, - 0,0,180,106,0,0,173,106,0,0,166,106,0,0,159,106,0,0,149,106,0,0,139,106,0,0,129,106,0,0,119,106,0,0,123,107,0,0,116,107,0,0,109,107,0,0,102,107,0,0,95,107,0,0,85,107,0,0,75,107,0,0,65,107,0,0,55,107,0,0,99,108,0,0,92,108,0,0,85,108,0,0,78,108, - 0,0,71,108,0,0,64,108,0,0,57,108,0,0,50,108,0,0,43,108,0,0,0,0,0,0,94,197,0,0,68,198,0,0,152,197,0,0,207,197,0,0,74,198,0,0,47,198,0,0,32,198,0,0,160,197,0,0,61,198,0,0,5,198,0,0,246,197,0,0,128,197,0,0,19,198,0,0,224,197,0,0,184,197,0,0,96, - 197,0,0,38,200,0,0,31,200,0,0,17,200,0,0,3,200,0,0,245,199,0,0,225,199,0,0,205,199,0,0,185,199,0,0,165,199,0,0,86,201,0,0,79,201,0,0,65,201,0,0,51,201,0,0,37,201,0,0,17,201,0,0,253,200,0,0,233,200,0,0,213,200,0,0,178,202,0,0,171,202,0,0,157, - 202,0,0,143,202,0,0,129,202,0,0,115,202,0,0,101,202,0,0,87,202,0,0,73,202,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,16,0,0,0,24,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,1,0,1,0,0,0,48,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,9,4,0,0,72,0,0,0,96,176,2,0,40,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,5,52,0,0,0,86,0,83,0,95,0,86,0,69,0,82,0,83,0,73,0,79,0,78,0,95,0,73,0,78,0,70,0,79,0,0,0,0,0,189,4,239,254,0,0, - 1,0,0,0,1,0,46,0,61,9,0,0,1,0,46,0,61,9,63,0,0,0,0,0,0,0,4,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,136,4,0,0,1,0,83,0,116,0,114,0,105,0,110,0,103,0,70,0,105,0,108,0,101,0,73,0,110,0,102,0,111,0,0,0,100,4,0,0,1,0,48,0,52,0,48,0,57,0,48,0,52,0,98, - 0,48,0,0,0,76,0,22,0,1,0,67,0,111,0,109,0,112,0,97,0,110,0,121,0,78,0,97,0,109,0,101,0,0,0,0,0,77,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,32,0,67,0,111,0,114,0,112,0,111,0,114,0,97,0,116,0,105,0,111,0,110,0,0,0,134,0,47,0,1,0,70,0,105, - 0,108,0,101,0,68,0,101,0,115,0,99,0,114,0,105,0,112,0,116,0,105,0,111,0,110,0,0,0,0,0,77,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,32,0,69,0,100,0,103,0,101,0,32,0,69,0,109,0,98,0,101,0,100,0,100,0,101,0,100,0,32,0,66,0,114,0,111,0,119, - 0,115,0,101,0,114,0,32,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,32,0,76,0,111,0,97,0,100,0,101,0,114,0,0,0,0,0,56,0,12,0,1,0,70,0,105,0,108,0,101,0,86,0,101,0,114,0,115,0,105,0,111,0,110,0,0,0,0,0,49,0,46,0,48,0,46,0,50,0,51,0,54,0,53,0,46,0, - 52,0,54,0,0,0,70,0,19,0,1,0,73,0,110,0,116,0,101,0,114,0,110,0,97,0,108,0,78,0,97,0,109,0,101,0,0,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,50,0,76,0,111,0,97,0,100,0,101,0,114,0,46,0,100,0,108,0,108,0,0,0,0,0,144,0,54,0,1,0,76,0,101,0,103,0, - 97,0,108,0,67,0,111,0,112,0,121,0,114,0,105,0,103,0,104,0,116,0,0,0,67,0,111,0,112,0,121,0,114,0,105,0,103,0,104,0,116,0,32,0,77,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,32,0,67,0,111,0,114,0,112,0,111,0,114,0,97,0,116,0,105,0,111,0, - 110,0,46,0,32,0,65,0,108,0,108,0,32,0,114,0,105,0,103,0,104,0,116,0,115,0,32,0,114,0,101,0,115,0,101,0,114,0,118,0,101,0,100,0,46,0,0,0,78,0,19,0,1,0,79,0,114,0,105,0,103,0,105,0,110,0,97,0,108,0,70,0,105,0,108,0,101,0,110,0,97,0,109,0,101,0, - 0,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,50,0,76,0,111,0,97,0,100,0,101,0,114,0,46,0,100,0,108,0,108,0,0,0,0,0,126,0,47,0,1,0,80,0,114,0,111,0,100,0,117,0,99,0,116,0,78,0,97,0,109,0,101,0,0,0,0,0,77,0,105,0,99,0,114,0,111,0,115,0,111,0,102, - 0,116,0,32,0,69,0,100,0,103,0,101,0,32,0,69,0,109,0,98,0,101,0,100,0,100,0,101,0,100,0,32,0,66,0,114,0,111,0,119,0,115,0,101,0,114,0,32,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,32,0,76,0,111,0,97,0,100,0,101,0,114,0,0,0,0,0,60,0,12,0,1,0,80, - 0,114,0,111,0,100,0,117,0,99,0,116,0,86,0,101,0,114,0,115,0,105,0,111,0,110,0,0,0,49,0,46,0,48,0,46,0,50,0,51,0,54,0,53,0,46,0,52,0,54,0,0,0,60,0,10,0,1,0,67,0,111,0,109,0,112,0,97,0,110,0,121,0,83,0,104,0,111,0,114,0,116,0,78,0,97,0,109,0,101, - 0,0,0,77,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,0,0,134,0,47,0,1,0,80,0,114,0,111,0,100,0,117,0,99,0,116,0,83,0,104,0,111,0,114,0,116,0,78,0,97,0,109,0,101,0,0,0,77,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,32,0,69,0,100,0,103, - 0,101,0,32,0,69,0,109,0,98,0,101,0,100,0,100,0,101,0,100,0,32,0,66,0,114,0,111,0,119,0,115,0,101,0,114,0,32,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,32,0,76,0,111,0,97,0,100,0,101,0,114,0,0,0,0,0,110,0,41,0,1,0,76,0,97,0,115,0,116,0,67,0,104, - 0,97,0,110,0,103,0,101,0,0,0,52,0,56,0,100,0,49,0,56,0,99,0,98,0,55,0,48,0,49,0,97,0,101,0,50,0,102,0,97,0,57,0,50,0,48,0,52,0,57,0,98,0,57,0,54,0,56,0,97,0,98,0,54,0,99,0,49,0,52,0,53,0,55,0,50,0,50,0,100,0,49,0,48,0,101,0,49,0,50,0,0,0,0,0, - 40,0,2,0,1,0,79,0,102,0,102,0,105,0,99,0,105,0,97,0,108,0,32,0,66,0,117,0,105,0,108,0,100,0,0,0,49,0,0,0,68,0,0,0,1,0,86,0,97,0,114,0,70,0,105,0,108,0,101,0,73,0,110,0,102,0,111,0,0,0,0,0,36,0,4,0,0,0,84,0,114,0,97,0,110,0,115,0,108,0,97,0,116, - 0,105,0,111,0,110,0,0,0,0,0,9,4,176,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,1,0,76,1,0,0,208,160,216,160,224,160,0,161,8,161,16,161,40,161,48,161,56,161,88,161,96,161,24,162,48,162,56,162,64,162,216,162,224,162,232,162,240,162,248,162,104,164,112,164,128,164,144,164,152,164,160, - 164,168,164,176,164,184,164,192,164,200,164,216,164,224,164,232,164,240,164,248,164,0,165,8,165,16,165,40,165,56,165,72,165,80,165,88,165,96,165,104,165,24,167,32,167,40,167,64,167,80,167,96,167,112,167,128,167,144,167,160,167,176,167,192,167, - 208,167,224,167,240,167,0,168,16,168,32,168,48,168,64,168,80,168,96,168,112,168,128,168,144,168,160,168,176,168,192,168,208,168,224,168,240,168,0,169,16,169,32,169,48,169,64,169,80,169,96,169,112,169,128,169,144,169,160,169,176,169,192,169,208, - 169,224,169,240,169,0,170,16,170,32,170,48,170,64,170,80,170,96,170,112,170,128,170,144,170,160,170,176,170,192,170,208,170,224,170,240,170,0,171,16,171,32,171,48,171,64,171,80,171,96,171,112,171,128,171,144,171,160,171,176,171,192,171,208,171, - 224,171,240,171,0,172,16,172,32,172,48,172,64,172,80,172,96,172,112,172,128,172,144,172,160,172,176,172,192,172,208,172,224,172,240,172,0,173,16,173,32,173,48,173,64,173,80,173,96,173,112,173,128,173,144,173,160,173,176,173,192,173,208,173,224, - 173,240,173,0,174,16,174,32,174,48,174,64,174,0,112,1,0,232,0,0,0,32,165,40,165,48,165,56,165,64,165,72,165,80,165,88,165,96,165,104,165,112,165,120,165,128,165,136,165,144,165,152,165,160,165,168,165,176,165,184,165,192,165,136,171,144,171, - 152,171,160,171,240,171,248,171,0,172,8,172,16,172,24,172,32,172,40,172,48,172,56,172,64,172,72,172,80,172,88,172,96,172,104,172,112,172,120,172,128,172,136,172,144,172,152,172,160,172,168,172,176,172,184,172,192,172,200,172,208,172,216,172, - 224,172,232,172,240,172,248,172,0,173,8,173,16,173,24,173,32,173,40,173,48,173,56,173,64,173,80,173,88,173,96,173,104,173,112,173,120,173,128,173,136,173,144,173,152,173,160,173,168,173,176,173,184,173,192,173,200,173,208,173,216,173,224,173, - 232,173,240,173,248,173,0,174,8,174,16,174,24,174,32,174,40,174,48,174,56,174,64,174,72,174,80,174,88,174,96,174,104,174,112,174,120,174,128,174,136,174,144,174,152,174,160,174,168,174,0,128,1,0,124,0,0,0,232,171,240,171,248,171,160,172,168, - 172,184,172,200,172,216,172,232,172,248,172,8,173,24,173,40,173,56,173,72,173,88,173,104,173,120,173,136,173,152,173,168,173,184,173,200,173,216,173,232,173,248,173,8,174,24,174,40,174,56,174,72,174,88,174,104,174,120,174,136,174,152,174,168, - 174,184,174,200,174,216,174,232,174,248,174,8,175,24,175,40,175,56,175,72,175,88,175,104,175,120,175,136,175,152,175,168,175,184,175,200,175,216,175,232,175,248,175,0,144,1,0,104,1,0,0,8,160,24,160,40,160,56,160,72,160,88,160,104,160,120,160, - 136,160,152,160,168,160,184,160,200,160,216,160,232,160,248,160,8,161,24,161,40,161,56,161,72,161,88,161,104,161,120,161,136,161,152,161,168,161,184,161,200,161,216,161,232,161,248,161,8,162,24,162,40,162,56,162,72,162,88,162,104,162,120,162, - 136,162,152,162,168,162,184,162,200,162,216,162,232,162,248,162,8,163,24,163,40,163,56,163,72,163,88,163,104,163,120,163,136,163,152,163,168,163,184,163,200,163,216,163,232,163,248,163,8,164,24,164,40,164,56,164,72,164,88,164,104,164,120,164, - 136,164,152,164,168,164,184,164,200,164,216,164,232,164,248,164,8,165,24,165,40,165,56,165,72,165,88,165,104,165,120,165,136,165,152,165,168,165,184,165,200,165,216,165,232,165,248,165,8,166,24,166,40,166,56,166,72,166,88,166,104,166,120,166, - 136,166,152,166,168,166,184,166,200,166,216,166,232,166,248,166,8,167,24,167,40,167,56,167,72,167,88,167,104,167,120,167,136,167,152,167,168,167,184,167,200,167,216,167,232,167,248,167,8,168,24,168,40,168,56,168,72,168,88,168,104,168,120,168, - 136,168,152,168,168,168,184,168,200,168,216,168,232,168,248,168,8,169,24,169,40,169,56,169,72,169,88,169,104,169,120,169,136,169,152,169,168,169,184,169,200,169,216,169,232,169,248,169,8,170,24,170,40,170,56,170,72,170,88,170,104,170,120,170, - 136,170,152,170,168,170,184,170,200,170,216,170,232,170,0,0,0,160,1,0,40,1,0,0,16,167,32,167,48,167,64,167,80,167,96,167,112,167,128,167,144,167,160,167,176,167,192,167,208,167,224,167,240,167,0,168,16,168,32,168,48,168,64,168,80,168,96,168, - 112,168,128,168,144,168,160,168,176,168,192,168,208,168,224,168,240,168,0,169,16,169,32,169,48,169,64,169,80,169,96,169,112,169,128,169,144,169,160,169,176,169,192,169,208,169,224,169,240,169,0,170,16,170,32,170,48,170,64,170,80,170,96,170,112, - 170,128,170,144,170,160,170,176,170,192,170,208,170,224,170,240,170,0,171,16,171,32,171,48,171,64,171,80,171,96,171,112,171,128,171,144,171,160,171,176,171,192,171,208,171,224,171,240,171,0,172,16,172,32,172,48,172,64,172,80,172,96,172,112,172, - 128,172,144,172,160,172,176,172,192,172,208,172,224,172,240,172,0,173,16,173,32,173,48,173,64,173,80,173,96,173,112,173,128,173,144,173,160,173,176,173,192,173,208,173,224,173,240,173,0,174,16,174,32,174,48,174,64,174,80,174,96,174,112,174,128, - 174,144,174,160,174,176,174,192,174,208,174,224,174,240,174,0,175,16,175,32,175,48,175,64,175,80,175,96,175,112,175,128,175,144,175,160,175,176,175,192,175,208,175,224,175,240,175,0,0,0,176,1,0,180,0,0,0,0,160,16,160,32,160,48,160,64,160,80, - 160,96,160,112,160,128,160,144,160,160,160,176,160,192,160,208,160,224,160,240,160,0,161,16,161,32,161,48,161,64,161,80,161,96,161,112,161,128,161,144,161,160,161,176,161,192,161,208,161,224,161,240,161,0,162,16,162,32,162,48,162,64,162,80,162, - 96,162,112,162,128,162,144,162,160,162,176,162,192,162,208,162,224,162,240,162,0,163,16,163,32,163,48,163,64,163,80,163,96,163,112,163,128,163,144,163,160,163,176,163,192,163,208,163,224,163,240,163,0,164,16,164,32,164,48,164,64,164,80,164,96, - 164,112,164,128,164,144,164,160,164,176,164,192,164,208,164,224,164,240,164,0,165,16,165,32,165,48,165,64,165,0,0,0,208,1,0,28,0,0,0,128,170,136,170,144,170,152,170,160,170,176,170,184,170,192,170,200,170,208,170,0,224,1,0,16,0,0,0,152,167,160, - 167,168,167,176,167,0,240,1,0,36,0,0,0,40,161,48,161,56,161,64,161,72,161,88,161,120,161,128,161,136,161,144,161,184,161,192,161,200,161,0,0,0,32,2,0,104,0,0,0,144,165,216,165,248,165,24,166,56,166,88,166,136,166,160,166,168,166,176,166,232, - 166,240,166,16,168,48,168,56,168,64,168,72,168,80,168,88,168,96,168,104,168,112,168,120,168,136,168,144,168,152,168,160,168,168,168,176,168,184,168,192,168,240,169,40,170,80,170,120,170,168,170,208,170,0,171,8,171,16,171,24,171,32,171,40,171, - 48,171,56,171,72,171,80,171,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,40,0,0,0,2, - 2,0,48,130,40,69,6,9,42,134,72,134,247,13,1,7,2,160,130,40,54,48,130,40,50,2,1,1,49,15,48,13,6,9,96,134,72,1,101,3,4,2,1,5,0,48,92,6,10,43,6,1,4,1,130,55,2,1,4,160,78,48,76,48,23,6,10,43,6,1,4,1,130,55,2,1,15,48,9,3,1,0,160,4,162,2,128,0,48, - 49,48,13,6,9,96,134,72,1,101,3,4,2,1,5,0,4,32,11,105,152,247,85,229,42,251,198,72,113,139,182,189,55,29,134,68,207,155,212,130,22,79,100,2,54,120,18,102,171,51,160,130,13,133,48,130,6,3,48,130,3,235,160,3,2,1,2,2,19,51,0,0,3,164,203,227,86,184, - 203,127,228,39,0,0,0,0,3,164,48,13,6,9,42,134,72,134,247,13,1,1,11,5,0,48,126,49,11,48,9,6,3,85,4,6,19,2,85,83,49,19,48,17,6,3,85,4,8,19,10,87,97,115,104,105,110,103,116,111,110,49,16,48,14,6,3,85,4,7,19,7,82,101,100,109,111,110,100,49,30,48, - 28,6,3,85,4,10,19,21,77,105,99,114,111,115,111,102,116,32,67,111,114,112,111,114,97,116,105,111,110,49,40,48,38,6,3,85,4,3,19,31,77,105,99,114,111,115,111,102,116,32,67,111,100,101,32,83,105,103,110,105,110,103,32,80,67,65,32,50,48,49,49,48, - 30,23,13,50,51,49,48,49,57,49,57,53,49,53,53,90,23,13,50,52,49,48,49,54,49,57,53,49,53,53,90,48,116,49,11,48,9,6,3,85,4,6,19,2,85,83,49,19,48,17,6,3,85,4,8,19,10,87,97,115,104,105,110,103,116,111,110,49,16,48,14,6,3,85,4,7,19,7,82,101,100,109, - 111,110,100,49,30,48,28,6,3,85,4,10,19,21,77,105,99,114,111,115,111,102,116,32,67,111,114,112,111,114,97,116,105,111,110,49,30,48,28,6,3,85,4,3,19,21,77,105,99,114,111,115,111,102,116,32,67,111,114,112,111,114,97,116,105,111,110,48,130,1,34, - 48,13,6,9,42,134,72,134,247,13,1,1,1,5,0,3,130,1,15,0,48,130,1,10,2,130,1,1,0,219,186,45,50,154,234,129,89,235,136,249,215,63,101,133,20,5,217,106,22,213,220,217,220,142,109,201,11,120,196,114,216,99,247,176,230,190,221,248,180,155,79,177,239, - 233,148,142,168,175,107,101,215,84,32,232,248,236,243,51,238,229,44,87,74,113,108,121,230,157,104,57,39,180,237,106,36,182,216,193,16,114,106,250,186,227,190,105,146,100,143,32,161,22,126,135,155,107,176,18,159,76,210,51,136,42,63,137,109,135, - 208,214,161,139,70,80,25,202,59,183,85,229,66,33,250,79,80,6,5,88,183,222,189,122,212,78,224,1,82,192,188,83,62,30,184,202,2,80,95,193,33,136,223,171,100,216,168,15,141,212,221,24,185,202,11,177,144,191,238,71,227,75,252,228,151,59,121,223,130, - 112,135,141,1,47,216,223,173,225,236,233,220,124,137,119,178,164,80,176,194,131,138,67,33,147,122,104,214,196,96,2,109,19,88,9,191,85,145,71,141,28,150,198,55,36,220,176,150,168,61,125,213,139,115,4,47,253,43,203,87,225,174,250,144,110,121,144, - 3,46,232,149,73,197,203,51,160,182,181,2,3,1,0,1,163,130,1,130,48,130,1,126,48,31,6,3,85,29,37,4,24,48,22,6,10,43,6,1,4,1,130,55,10,3,21,6,8,43,6,1,5,5,7,3,3,48,29,6,3,85,29,14,4,22,4,20,226,195,165,151,136,221,111,57,242,153,145,5,120,7,200, - 252,136,142,168,85,48,84,6,3,85,29,17,4,77,48,75,164,73,48,71,49,45,48,43,6,3,85,4,11,19,36,77,105,99,114,111,115,111,102,116,32,73,114,101,108,97,110,100,32,79,112,101,114,97,116,105,111,110,115,32,76,105,109,105,116,101,100,49,22,48,20,6,3, - 85,4,5,19,13,50,51,48,50,49,55,43,53,48,49,54,55,49,48,31,6,3,85,29,35,4,24,48,22,128,20,72,110,100,229,80,5,211,130,170,23,55,55,34,181,109,168,202,117,2,149,48,84,6,3,85,29,31,4,77,48,75,48,73,160,71,160,69,134,67,104,116,116,112,58,47,47, - 119,119,119,46,109,105,99,114,111,115,111,102,116,46,99,111,109,47,112,107,105,111,112,115,47,99,114,108,47,77,105,99,67,111,100,83,105,103,80,67,65,50,48,49,49,95,50,48,49,49,45,48,55,45,48,56,46,99,114,108,48,97,6,8,43,6,1,5,5,7,1,1,4,85,48, - 83,48,81,6,8,43,6,1,5,5,7,48,2,134,69,104,116,116,112,58,47,47,119,119,119,46,109,105,99,114,111,115,111,102,116,46,99,111,109,47,112,107,105,111,112,115,47,99,101,114,116,115,47,77,105,99,67,111,100,83,105,103,80,67,65,50,48,49,49,95,50,48, - 49,49,45,48,55,45,48,56,46,99,114,116,48,12,6,3,85,29,19,1,1,255,4,2,48,0,48,13,6,9,42,134,72,134,247,13,1,1,11,5,0,3,130,2,1,0,122,220,16,76,109,248,84,226,112,43,238,135,93,145,91,111,246,36,81,233,70,98,171,9,118,222,171,130,79,218,210,84, - 76,85,221,97,49,52,158,200,247,61,104,254,139,205,78,66,255,220,69,233,86,38,162,9,23,71,194,16,135,235,61,235,83,197,3,49,196,94,15,7,166,113,249,206,93,198,64,175,64,212,217,86,163,91,12,40,207,185,88,235,58,147,31,207,68,73,211,165,28,240, - 217,97,180,133,90,157,127,103,8,172,219,184,69,49,248,167,9,170,194,229,232,69,154,39,111,174,38,146,146,211,147,56,12,218,139,66,171,147,200,6,252,4,210,109,235,175,127,222,39,202,90,64,113,132,51,38,52,150,212,200,88,36,183,192,3,174,174,33, - 184,89,210,139,11,42,145,249,184,138,202,100,65,96,217,44,141,248,206,196,216,14,58,174,168,201,186,89,137,175,2,232,74,19,226,62,89,134,130,85,72,4,238,80,31,108,125,183,63,54,100,126,245,142,171,4,14,237,67,27,14,153,84,110,47,116,180,151, - 209,157,111,194,231,144,133,8,97,135,38,42,55,179,225,249,48,8,79,217,100,216,14,170,209,227,100,171,84,209,16,113,37,230,231,185,229,180,123,254,41,134,194,175,14,31,53,239,128,14,152,37,247,48,128,120,48,35,112,178,51,138,248,131,201,35,197, - 214,196,180,247,190,98,222,178,10,209,35,78,50,177,87,50,250,199,35,238,130,218,100,136,211,178,209,178,103,153,215,24,97,194,236,39,22,222,230,104,130,173,159,210,103,62,110,27,170,20,169,229,1,166,84,206,12,168,180,95,54,225,217,135,127,97, - 19,151,14,15,136,142,169,80,174,199,144,236,56,78,89,56,28,226,188,190,44,21,65,112,76,91,145,194,78,167,209,30,117,49,156,231,225,162,41,254,153,149,195,95,114,59,198,231,82,116,181,124,174,2,108,96,229,144,43,114,232,154,226,203,190,26,166, - 93,138,246,151,228,160,178,204,189,9,14,162,133,12,44,180,78,135,252,230,48,40,109,208,173,188,251,71,54,97,38,190,137,244,145,125,6,7,50,10,217,179,54,55,211,235,9,114,153,195,38,199,242,29,86,150,65,142,60,211,91,64,233,68,161,206,255,47,232, - 200,235,26,144,183,48,130,7,122,48,130,5,98,160,3,2,1,2,2,10,97,14,144,210,0,0,0,0,0,3,48,13,6,9,42,134,72,134,247,13,1,1,11,5,0,48,129,136,49,11,48,9,6,3,85,4,6,19,2,85,83,49,19,48,17,6,3,85,4,8,19,10,87,97,115,104,105,110,103,116,111,110,49, - 16,48,14,6,3,85,4,7,19,7,82,101,100,109,111,110,100,49,30,48,28,6,3,85,4,10,19,21,77,105,99,114,111,115,111,102,116,32,67,111,114,112,111,114,97,116,105,111,110,49,50,48,48,6,3,85,4,3,19,41,77,105,99,114,111,115,111,102,116,32,82,111,111,116, - 32,67,101,114,116,105,102,105,99,97,116,101,32,65,117,116,104,111,114,105,116,121,32,50,48,49,49,48,30,23,13,49,49,48,55,48,56,50,48,53,57,48,57,90,23,13,50,54,48,55,48,56,50,49,48,57,48,57,90,48,126,49,11,48,9,6,3,85,4,6,19,2,85,83,49,19,48, - 17,6,3,85,4,8,19,10,87,97,115,104,105,110,103,116,111,110,49,16,48,14,6,3,85,4,7,19,7,82,101,100,109,111,110,100,49,30,48,28,6,3,85,4,10,19,21,77,105,99,114,111,115,111,102,116,32,67,111,114,112,111,114,97,116,105,111,110,49,40,48,38,6,3,85, - 4,3,19,31,77,105,99,114,111,115,111,102,116,32,67,111,100,101,32,83,105,103,110,105,110,103,32,80,67,65,32,50,48,49,49,48,130,2,34,48,13,6,9,42,134,72,134,247,13,1,1,1,5,0,3,130,2,15,0,48,130,2,10,2,130,2,1,0,171,240,250,114,16,28,46,173,216, - 110,170,130,16,77,52,186,242,182,88,33,159,66,27,42,107,233,90,80,170,184,6,56,26,4,73,186,127,195,12,30,221,55,107,198,18,216,11,240,56,194,153,6,176,200,57,213,1,20,49,66,211,137,13,121,100,135,126,148,96,36,108,175,158,73,156,233,104,94,210, - 223,155,83,178,10,44,195,175,217,169,43,174,122,9,175,215,150,89,202,96,26,5,233,102,118,232,50,82,38,18,47,231,171,8,80,207,179,68,183,93,216,196,46,3,117,171,104,243,203,109,243,58,92,161,22,244,70,186,224,56,100,172,110,100,53,120,166,160, - 99,15,45,211,64,147,248,227,222,7,13,213,92,121,165,73,41,231,13,190,160,19,119,190,148,61,239,251,227,43,90,16,31,77,86,40,162,122,114,224,18,58,183,73,94,216,237,237,67,145,131,217,123,178,123,134,27,217,62,177,140,93,232,137,79,132,26,242, - 161,47,89,228,144,59,45,174,51,88,197,183,62,254,50,211,179,3,61,177,178,175,146,56,126,210,157,128,44,245,78,86,145,33,53,37,195,57,110,100,127,83,186,156,15,173,25,35,132,203,244,186,3,134,141,247,95,240,208,82,191,140,148,135,188,192,33,116, - 37,95,24,40,182,204,39,40,56,37,152,57,74,54,207,124,177,146,174,28,35,167,169,102,236,97,31,106,225,40,73,157,95,136,226,37,93,211,33,75,62,82,196,181,87,63,36,3,240,209,122,91,47,213,35,227,112,93,15,81,70,119,179,248,0,225,188,172,2,130,95, - 219,192,21,179,189,27,212,85,75,231,57,161,15,233,35,73,188,24,184,68,124,69,228,193,195,114,122,224,114,231,36,223,191,70,153,197,239,194,28,87,219,131,141,236,77,73,48,167,171,142,223,236,91,159,175,252,221,176,102,226,193,151,129,123,237, - 214,237,75,231,73,41,167,19,40,166,167,125,103,128,230,138,98,120,95,178,47,132,215,87,156,92,191,119,40,40,241,237,109,195,40,143,44,143,64,55,79,193,225,133,68,137,196,9,76,197,212,165,67,47,116,149,247,110,248,120,32,88,44,19,93,96,149,154, - 62,79,51,132,218,176,136,23,222,158,78,244,150,176,188,70,160,108,152,210,224,214,136,140,11,2,3,1,0,1,163,130,1,237,48,130,1,233,48,16,6,9,43,6,1,4,1,130,55,21,1,4,3,2,1,0,48,29,6,3,85,29,14,4,22,4,20,72,110,100,229,80,5,211,130,170,23,55,55, - 34,181,109,168,202,117,2,149,48,25,6,9,43,6,1,4,1,130,55,20,2,4,12,30,10,0,83,0,117,0,98,0,67,0,65,48,11,6,3,85,29,15,4,4,3,2,1,134,48,15,6,3,85,29,19,1,1,255,4,5,48,3,1,1,255,48,31,6,3,85,29,35,4,24,48,22,128,20,114,45,58,2,49,144,67,185,20, - 5,78,225,234,167,199,49,209,35,137,52,48,90,6,3,85,29,31,4,83,48,81,48,79,160,77,160,75,134,73,104,116,116,112,58,47,47,99,114,108,46,109,105,99,114,111,115,111,102,116,46,99,111,109,47,112,107,105,47,99,114,108,47,112,114,111,100,117,99,116, - 115,47,77,105,99,82,111,111,67,101,114,65,117,116,50,48,49,49,95,50,48,49,49,95,48,51,95,50,50,46,99,114,108,48,94,6,8,43,6,1,5,5,7,1,1,4,82,48,80,48,78,6,8,43,6,1,5,5,7,48,2,134,66,104,116,116,112,58,47,47,119,119,119,46,109,105,99,114,111, - 115,111,102,116,46,99,111,109,47,112,107,105,47,99,101,114,116,115,47,77,105,99,82,111,111,67,101,114,65,117,116,50,48,49,49,95,50,48,49,49,95,48,51,95,50,50,46,99,114,116,48,129,159,6,3,85,29,32,4,129,151,48,129,148,48,129,145,6,9,43,6,1,4, - 1,130,55,46,3,48,129,131,48,63,6,8,43,6,1,5,5,7,2,1,22,51,104,116,116,112,58,47,47,119,119,119,46,109,105,99,114,111,115,111,102,116,46,99,111,109,47,112,107,105,111,112,115,47,100,111,99,115,47,112,114,105,109,97,114,121,99,112,115,46,104,116, - 109,48,64,6,8,43,6,1,5,5,7,2,2,48,52,30,50,32,29,0,76,0,101,0,103,0,97,0,108,0,95,0,112,0,111,0,108,0,105,0,99,0,121,0,95,0,115,0,116,0,97,0,116,0,101,0,109,0,101,0,110,0,116,0,46,32,29,48,13,6,9,42,134,72,134,247,13,1,1,11,5,0,3,130,2,1,0,103, - 242,134,165,152,224,84,121,26,46,211,216,116,103,34,155,11,150,17,225,99,146,153,66,150,125,210,121,12,144,193,101,95,46,44,62,248,195,114,209,109,131,254,190,63,232,10,202,59,191,71,169,163,243,105,219,99,191,34,53,165,151,93,101,132,144,125, - 139,70,80,85,216,12,146,124,210,26,75,28,243,60,66,139,82,208,176,253,107,227,62,7,46,41,155,230,61,27,165,212,181,29,119,148,57,226,233,100,201,68,61,120,122,35,243,19,125,166,144,116,131,141,244,203,38,2,70,42,194,138,16,187,164,169,5,12,155, - 237,104,250,104,46,149,160,42,63,42,107,88,73,99,31,9,105,110,90,152,150,228,131,244,192,143,243,70,43,222,252,59,208,189,53,239,110,37,174,229,175,39,237,208,221,243,14,175,153,40,151,152,77,14,61,11,242,8,137,214,31,195,50,24,226,240,197,45, - 206,91,158,180,73,57,10,198,10,194,198,173,174,229,178,217,219,21,136,81,69,88,56,50,113,39,26,127,177,244,39,248,222,44,58,32,105,152,178,89,137,104,110,111,167,183,116,195,64,5,6,166,1,42,40,62,130,63,19,77,102,11,192,179,77,245,225,143,127, - 28,111,21,125,69,167,118,229,64,42,101,163,195,93,82,98,134,195,29,99,54,151,134,223,218,243,248,242,22,161,154,39,225,205,165,151,208,238,93,99,65,227,91,7,156,135,62,6,119,6,209,6,177,117,31,20,190,97,97,181,240,220,198,27,4,190,223,65,199, - 14,40,238,222,101,47,236,151,246,161,92,150,216,0,214,161,70,189,89,243,151,165,9,75,72,16,153,128,31,208,0,41,197,177,155,165,63,69,119,30,53,198,210,162,162,159,122,122,34,250,72,149,31,171,251,71,35,128,245,158,248,191,107,183,75,151,226, - 235,117,120,26,236,234,55,153,121,24,75,255,214,179,35,104,117,230,175,250,252,139,235,11,128,234,105,59,175,252,48,237,4,76,142,223,223,117,109,99,145,61,209,157,86,78,79,191,128,87,34,161,120,17,50,33,122,239,65,10,177,63,251,168,204,164,93, - 193,161,136,155,87,113,86,78,72,69,192,66,201,155,118,91,10,128,72,107,253,121,159,193,189,109,109,106,201,82,115,19,13,122,80,205,49,130,26,51,48,130,26,47,2,1,1,48,129,149,48,126,49,11,48,9,6,3,85,4,6,19,2,85,83,49,19,48,17,6,3,85,4,8,19,10, - 87,97,115,104,105,110,103,116,111,110,49,16,48,14,6,3,85,4,7,19,7,82,101,100,109,111,110,100,49,30,48,28,6,3,85,4,10,19,21,77,105,99,114,111,115,111,102,116,32,67,111,114,112,111,114,97,116,105,111,110,49,40,48,38,6,3,85,4,3,19,31,77,105,99, - 114,111,115,111,102,116,32,67,111,100,101,32,83,105,103,110,105,110,103,32,80,67,65,32,50,48,49,49,2,19,51,0,0,3,164,203,227,86,184,203,127,228,39,0,0,0,0,3,164,48,13,6,9,96,134,72,1,101,3,4,2,1,5,0,160,129,212,48,25,6,9,42,134,72,134,247,13, - 1,9,3,49,12,6,10,43,6,1,4,1,130,55,2,1,4,48,28,6,10,43,6,1,4,1,130,55,2,1,11,49,14,48,12,6,10,43,6,1,4,1,130,55,2,1,21,48,47,6,9,42,134,72,134,247,13,1,9,4,49,34,4,32,211,51,74,254,224,208,185,104,144,149,188,46,17,252,59,119,136,174,219,123, - 72,227,79,180,18,25,208,24,4,57,162,249,48,104,6,10,43,6,1,4,1,130,55,2,1,12,49,90,48,88,160,56,128,54,0,77,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,32,0,69,0,100,0,103,0,101,0,32,0,87,0,101,0,98,0,86,0,105,0,101,0,119,0,50,0,32,0,83, - 0,68,0,75,161,28,128,26,104,116,116,112,115,58,47,47,119,119,119,46,109,105,99,114,111,115,111,102,116,46,99,111,109,32,48,13,6,9,42,134,72,134,247,13,1,1,1,5,0,4,130,1,0,192,226,10,132,156,226,168,128,19,108,3,242,1,206,167,234,13,204,13,92, - 223,27,78,79,74,236,242,219,135,97,51,225,164,182,65,169,20,76,147,34,247,116,111,55,178,93,213,173,250,111,139,237,227,189,119,99,133,90,145,34,127,198,218,89,97,117,85,233,82,177,228,31,87,138,126,185,201,179,14,210,54,83,246,147,130,89,37, - 29,231,122,218,125,172,165,153,195,218,148,102,17,1,91,184,187,167,207,10,236,230,87,164,106,21,53,172,13,16,106,51,247,82,8,82,45,58,60,33,3,177,26,143,101,204,216,229,188,114,42,22,243,109,26,123,72,109,6,225,80,139,200,116,90,74,194,216,157, - 221,95,153,198,27,240,164,10,178,169,239,178,82,90,249,156,217,60,147,137,201,47,156,94,253,186,69,2,17,199,39,60,186,79,235,139,21,83,111,91,141,172,40,250,221,166,61,9,118,146,252,205,133,5,106,153,8,207,115,247,160,151,148,230,87,29,186,77, - 94,91,202,105,207,9,109,47,236,239,177,118,168,32,110,120,238,150,123,175,67,73,96,1,18,100,112,58,232,233,204,23,161,130,23,151,48,130,23,147,6,10,43,6,1,4,1,130,55,3,3,1,49,130,23,131,48,130,23,127,6,9,42,134,72,134,247,13,1,7,2,160,130,23, - 112,48,130,23,108,2,1,3,49,15,48,13,6,9,96,134,72,1,101,3,4,2,1,5,0,48,130,1,82,6,11,42,134,72,134,247,13,1,9,16,1,4,160,130,1,65,4,130,1,61,48,130,1,57,2,1,1,6,10,43,6,1,4,1,132,89,10,3,1,48,49,48,13,6,9,96,134,72,1,101,3,4,2,1,5,0,4,32,175, - 26,102,228,62,220,205,124,197,64,104,98,10,8,41,254,112,146,108,43,76,228,229,154,92,91,75,129,217,230,162,138,2,6,101,206,5,181,125,110,24,19,50,48,50,52,48,50,50,48,48,56,49,56,53,51,46,50,50,54,90,48,4,128,2,1,244,160,129,209,164,129,206, - 48,129,203,49,11,48,9,6,3,85,4,6,19,2,85,83,49,19,48,17,6,3,85,4,8,19,10,87,97,115,104,105,110,103,116,111,110,49,16,48,14,6,3,85,4,7,19,7,82,101,100,109,111,110,100,49,30,48,28,6,3,85,4,10,19,21,77,105,99,114,111,115,111,102,116,32,67,111,114, - 112,111,114,97,116,105,111,110,49,37,48,35,6,3,85,4,11,19,28,77,105,99,114,111,115,111,102,116,32,65,109,101,114,105,99,97,32,79,112,101,114,97,116,105,111,110,115,49,39,48,37,6,3,85,4,11,19,30,110,83,104,105,101,108,100,32,84,83,83,32,69,83, - 78,58,65,48,48,48,45,48,53,69,48,45,68,57,52,55,49,37,48,35,6,3,85,4,3,19,28,77,105,99,114,111,115,111,102,116,32,84,105,109,101,45,83,116,97,109,112,32,83,101,114,118,105,99,101,160,130,17,237,48,130,7,32,48,130,5,8,160,3,2,1,2,2,19,51,0,0, - 1,235,224,24,108,181,182,239,56,237,0,1,0,0,1,235,48,13,6,9,42,134,72,134,247,13,1,1,11,5,0,48,124,49,11,48,9,6,3,85,4,6,19,2,85,83,49,19,48,17,6,3,85,4,8,19,10,87,97,115,104,105,110,103,116,111,110,49,16,48,14,6,3,85,4,7,19,7,82,101,100,109, - 111,110,100,49,30,48,28,6,3,85,4,10,19,21,77,105,99,114,111,115,111,102,116,32,67,111,114,112,111,114,97,116,105,111,110,49,38,48,36,6,3,85,4,3,19,29,77,105,99,114,111,115,111,102,116,32,84,105,109,101,45,83,116,97,109,112,32,80,67,65,32,50, - 48,49,48,48,30,23,13,50,51,49,50,48,54,49,56,52,53,51,52,90,23,13,50,53,48,51,48,53,49,56,52,53,51,52,90,48,129,203,49,11,48,9,6,3,85,4,6,19,2,85,83,49,19,48,17,6,3,85,4,8,19,10,87,97,115,104,105,110,103,116,111,110,49,16,48,14,6,3,85,4,7,19, - 7,82,101,100,109,111,110,100,49,30,48,28,6,3,85,4,10,19,21,77,105,99,114,111,115,111,102,116,32,67,111,114,112,111,114,97,116,105,111,110,49,37,48,35,6,3,85,4,11,19,28,77,105,99,114,111,115,111,102,116,32,65,109,101,114,105,99,97,32,79,112,101, - 114,97,116,105,111,110,115,49,39,48,37,6,3,85,4,11,19,30,110,83,104,105,101,108,100,32,84,83,83,32,69,83,78,58,65,48,48,48,45,48,53,69,48,45,68,57,52,55,49,37,48,35,6,3,85,4,3,19,28,77,105,99,114,111,115,111,102,116,32,84,105,109,101,45,83,116, - 97,109,112,32,83,101,114,118,105,99,101,48,130,2,34,48,13,6,9,42,134,72,134,247,13,1,1,1,5,0,3,130,2,15,0,48,130,2,10,2,130,2,1,0,193,21,104,33,218,86,224,87,119,137,167,77,104,170,38,133,6,230,27,53,206,225,72,169,164,182,242,117,228,218,193, - 252,48,91,161,74,48,241,99,206,76,252,91,159,184,28,152,131,134,155,2,100,119,228,242,23,30,202,58,124,235,198,122,1,222,27,175,191,221,95,102,229,46,128,139,10,78,112,47,131,96,84,254,119,205,237,156,231,244,169,53,154,155,137,219,180,186,197, - 64,199,226,135,69,137,126,117,32,39,10,151,161,6,225,204,74,129,192,192,138,120,161,79,204,107,160,149,149,1,50,251,167,198,219,126,124,44,115,90,98,133,153,156,188,139,152,26,118,245,77,143,109,158,151,66,133,106,253,16,4,110,10,141,211,137, - 17,163,51,98,233,226,152,147,218,80,249,134,119,119,85,161,147,122,147,106,201,169,41,144,33,149,211,231,10,241,91,191,30,66,25,118,252,190,207,145,11,222,136,211,116,82,203,230,242,125,32,10,32,89,253,215,2,237,221,237,42,69,105,170,30,139, - 29,30,214,174,121,0,63,120,103,0,207,250,44,234,45,167,108,5,29,237,206,58,182,69,250,194,52,191,147,154,47,227,106,84,109,163,242,122,110,30,31,62,17,196,78,112,194,239,196,245,201,245,212,65,209,173,152,159,238,180,143,192,55,24,187,29,95, - 32,0,252,226,119,212,216,140,195,219,98,161,188,203,156,115,250,2,63,72,92,163,249,162,173,28,117,166,43,49,23,62,219,87,204,7,30,196,157,68,31,188,27,186,37,100,222,193,43,60,175,76,46,13,87,111,168,76,228,114,22,3,72,196,1,152,74,19,39,121, - 132,125,151,50,38,243,106,70,233,218,205,132,37,5,154,177,7,56,12,198,133,212,75,16,212,44,224,10,80,216,33,129,186,173,72,110,117,242,59,147,194,253,40,160,132,185,244,91,43,153,93,69,131,64,169,215,107,255,36,137,126,230,111,220,244,183,250, - 251,67,233,126,170,212,126,20,58,104,195,41,216,232,91,122,172,236,148,76,102,97,253,126,65,100,51,54,250,97,44,235,233,229,245,46,134,38,220,250,206,212,151,154,227,116,152,206,80,119,79,63,56,58,251,149,73,94,205,114,39,85,180,218,162,101, - 229,150,165,88,223,106,244,126,38,63,201,57,2,3,1,0,1,163,130,1,73,48,130,1,69,48,29,6,3,85,29,14,4,22,4,20,116,158,5,172,214,85,204,110,226,164,253,59,152,211,216,31,170,1,234,225,48,31,6,3,85,29,35,4,24,48,22,128,20,159,167,21,93,0,94,98,93, - 131,244,229,210,101,167,27,83,53,25,233,114,48,95,6,3,85,29,31,4,88,48,86,48,84,160,82,160,80,134,78,104,116,116,112,58,47,47,119,119,119,46,109,105,99,114,111,115,111,102,116,46,99,111,109,47,112,107,105,111,112,115,47,99,114,108,47,77,105, - 99,114,111,115,111,102,116,37,50,48,84,105,109,101,45,83,116,97,109,112,37,50,48,80,67,65,37,50,48,50,48,49,48,40,49,41,46,99,114,108,48,108,6,8,43,6,1,5,5,7,1,1,4,96,48,94,48,92,6,8,43,6,1,5,5,7,48,2,134,80,104,116,116,112,58,47,47,119,119, - 119,46,109,105,99,114,111,115,111,102,116,46,99,111,109,47,112,107,105,111,112,115,47,99,101,114,116,115,47,77,105,99,114,111,115,111,102,116,37,50,48,84,105,109,101,45,83,116,97,109,112,37,50,48,80,67,65,37,50,48,50,48,49,48,40,49,41,46,99, - 114,116,48,12,6,3,85,29,19,1,1,255,4,2,48,0,48,22,6,3,85,29,37,1,1,255,4,12,48,10,6,8,43,6,1,5,5,7,3,8,48,14,6,3,85,29,15,1,1,255,4,4,3,2,7,128,48,13,6,9,42,134,72,134,247,13,1,1,11,5,0,3,130,2,1,0,131,116,223,47,160,247,124,11,229,86,100,253, - 254,91,206,220,253,6,221,109,98,180,176,235,125,103,137,4,57,105,224,236,169,161,249,96,246,46,115,201,76,146,136,17,172,103,136,231,45,247,3,32,39,204,144,203,4,124,88,120,3,58,246,240,169,218,172,45,70,140,224,218,222,174,210,58,20,143,107, - 134,56,94,104,172,77,54,112,89,204,118,75,15,9,100,47,219,194,16,55,189,69,205,29,25,37,93,228,24,55,9,105,39,87,123,175,85,171,181,224,94,121,17,36,214,32,19,90,65,47,66,166,141,142,167,61,220,70,0,24,85,246,139,20,102,192,172,215,17,189,37, - 175,73,70,222,35,98,3,169,28,66,227,16,91,70,35,80,251,90,135,92,48,143,159,72,70,177,119,203,251,41,195,102,119,2,126,204,205,174,88,25,79,110,23,130,27,211,205,131,7,113,120,168,45,86,40,255,97,228,202,140,58,116,142,238,80,178,91,43,18,215, - 243,1,225,178,44,43,137,114,3,10,120,203,86,193,180,19,150,209,243,100,32,114,199,132,135,22,212,217,221,81,84,119,16,182,69,4,237,111,115,197,154,153,235,248,207,153,170,35,102,5,208,59,125,215,143,19,135,97,133,90,252,21,220,34,235,188,72, - 204,207,142,48,0,110,232,240,77,172,41,107,50,193,191,223,123,45,16,116,100,230,205,114,66,88,201,4,41,17,52,159,148,221,250,141,111,179,237,31,231,27,34,106,69,157,199,181,157,101,93,109,95,235,49,2,1,227,254,245,220,186,158,103,2,173,87,14, - 169,180,7,95,182,107,241,99,220,130,17,201,0,0,229,155,145,49,62,30,113,139,91,77,70,79,162,232,93,154,245,42,83,121,9,217,92,254,116,195,226,104,79,18,18,66,174,239,6,40,246,158,43,64,177,34,218,85,227,42,160,248,190,53,121,83,80,214,118,53, - 219,91,22,190,136,138,191,89,43,219,159,107,61,197,197,251,195,102,141,250,230,242,206,163,57,144,57,239,217,250,155,184,189,142,115,62,107,77,137,82,28,66,113,114,236,150,78,137,149,67,35,150,200,119,4,17,106,45,170,184,114,137,234,91,84,118, - 200,183,30,51,103,137,235,132,239,103,211,225,229,161,198,217,167,55,145,216,8,48,130,7,113,48,130,5,89,160,3,2,1,2,2,19,51,0,0,0,21,197,231,107,158,2,155,73,153,0,0,0,0,0,21,48,13,6,9,42,134,72,134,247,13,1,1,11,5,0,48,129,136,49,11,48,9,6, - 3,85,4,6,19,2,85,83,49,19,48,17,6,3,85,4,8,19,10,87,97,115,104,105,110,103,116,111,110,49,16,48,14,6,3,85,4,7,19,7,82,101,100,109,111,110,100,49,30,48,28,6,3,85,4,10,19,21,77,105,99,114,111,115,111,102,116,32,67,111,114,112,111,114,97,116,105, - 111,110,49,50,48,48,6,3,85,4,3,19,41,77,105,99,114,111,115,111,102,116,32,82,111,111,116,32,67,101,114,116,105,102,105,99,97,116,101,32,65,117,116,104,111,114,105,116,121,32,50,48,49,48,48,30,23,13,50,49,48,57,51,48,49,56,50,50,50,53,90,23,13, - 51,48,48,57,51,48,49,56,51,50,50,53,90,48,124,49,11,48,9,6,3,85,4,6,19,2,85,83,49,19,48,17,6,3,85,4,8,19,10,87,97,115,104,105,110,103,116,111,110,49,16,48,14,6,3,85,4,7,19,7,82,101,100,109,111,110,100,49,30,48,28,6,3,85,4,10,19,21,77,105,99, - 114,111,115,111,102,116,32,67,111,114,112,111,114,97,116,105,111,110,49,38,48,36,6,3,85,4,3,19,29,77,105,99,114,111,115,111,102,116,32,84,105,109,101,45,83,116,97,109,112,32,80,67,65,32,50,48,49,48,48,130,2,34,48,13,6,9,42,134,72,134,247,13, - 1,1,1,5,0,3,130,2,15,0,48,130,2,10,2,130,2,1,0,228,225,166,76,231,180,114,33,11,121,162,203,215,36,121,189,14,213,130,211,253,238,156,7,7,210,169,108,78,117,200,202,53,87,246,1,127,108,74,224,226,189,185,62,23,96,51,255,92,79,199,102,247,149, - 83,113,90,226,126,74,90,254,184,54,103,133,70,35,12,181,141,19,207,119,50,192,16,24,232,96,125,106,82,131,68,183,166,142,70,107,7,20,243,197,118,245,134,80,220,193,68,200,113,92,81,49,55,160,10,56,110,141,237,215,15,216,38,83,124,57,97,2,122, - 196,170,253,114,105,175,29,171,172,246,54,190,53,38,100,218,152,59,186,26,123,51,173,128,91,126,140,16,28,157,82,254,182,232,98,37,220,106,15,207,93,244,254,142,83,207,214,236,133,86,77,239,221,188,141,164,227,145,143,178,57,44,81,156,233,112, - 105,13,202,54,45,112,142,49,200,53,40,189,227,180,135,36,195,224,201,143,126,181,84,143,220,250,5,85,152,109,104,59,154,70,189,237,164,174,122,41,55,172,203,235,131,69,231,70,110,202,50,213,192,134,48,92,79,44,226,98,178,205,185,226,141,136, - 228,150,172,1,74,187,190,113,169,23,91,103,96,222,248,146,145,30,29,61,253,32,207,115,125,65,154,70,117,205,196,95,52,221,18,137,214,253,165,32,125,126,252,217,158,69,223,182,114,47,219,125,95,128,186,219,170,126,54,236,54,76,246,43,110,168, - 18,81,232,191,5,3,163,209,115,166,77,55,116,148,28,52,130,15,240,16,242,183,71,24,237,167,232,153,124,63,76,219,175,94,194,243,213,216,115,61,67,78,193,51,57,76,142,2,188,66,104,46,16,234,132,81,70,226,209,189,106,24,90,97,1,115,202,103,162, - 94,215,40,118,2,226,51,24,114,215,167,32,240,194,250,18,10,215,99,111,12,201,54,100,139,91,160,166,131,33,93,95,48,116,145,148,148,216,185,80,249,11,137,97,243,54,6,53,24,132,71,219,220,27,209,253,178,212,28,197,107,246,92,82,81,93,18,219,37, - 186,175,80,5,122,108,197,17,29,114,239,141,249,82,196,133,23,147,192,60,21,219,26,55,199,8,21,24,63,120,171,69,182,245,30,135,94,218,143,158,22,114,105,198,174,123,183,183,62,106,226,46,173,2,3,1,0,1,163,130,1,221,48,130,1,217,48,18,6,9,43,6, - 1,4,1,130,55,21,1,4,5,2,3,1,0,1,48,35,6,9,43,6,1,4,1,130,55,21,2,4,22,4,20,42,167,82,254,100,196,154,190,130,145,60,70,53,41,207,16,255,47,4,238,48,29,6,3,85,29,14,4,22,4,20,159,167,21,93,0,94,98,93,131,244,229,210,101,167,27,83,53,25,233,114, - 48,92,6,3,85,29,32,4,85,48,83,48,81,6,12,43,6,1,4,1,130,55,76,131,125,1,1,48,65,48,63,6,8,43,6,1,5,5,7,2,1,22,51,104,116,116,112,58,47,47,119,119,119,46,109,105,99,114,111,115,111,102,116,46,99,111,109,47,112,107,105,111,112,115,47,68,111,99, - 115,47,82,101,112,111,115,105,116,111,114,121,46,104,116,109,48,19,6,3,85,29,37,4,12,48,10,6,8,43,6,1,5,5,7,3,8,48,25,6,9,43,6,1,4,1,130,55,20,2,4,12,30,10,0,83,0,117,0,98,0,67,0,65,48,11,6,3,85,29,15,4,4,3,2,1,134,48,15,6,3,85,29,19,1,1,255, - 4,5,48,3,1,1,255,48,31,6,3,85,29,35,4,24,48,22,128,20,213,246,86,203,143,232,162,92,98,104,209,61,148,144,91,215,206,154,24,196,48,86,6,3,85,29,31,4,79,48,77,48,75,160,73,160,71,134,69,104,116,116,112,58,47,47,99,114,108,46,109,105,99,114,111, - 115,111,102,116,46,99,111,109,47,112,107,105,47,99,114,108,47,112,114,111,100,117,99,116,115,47,77,105,99,82,111,111,67,101,114,65,117,116,95,50,48,49,48,45,48,54,45,50,51,46,99,114,108,48,90,6,8,43,6,1,5,5,7,1,1,4,78,48,76,48,74,6,8,43,6,1, - 5,5,7,48,2,134,62,104,116,116,112,58,47,47,119,119,119,46,109,105,99,114,111,115,111,102,116,46,99,111,109,47,112,107,105,47,99,101,114,116,115,47,77,105,99,82,111,111,67,101,114,65,117,116,95,50,48,49,48,45,48,54,45,50,51,46,99,114,116,48,13, - 6,9,42,134,72,134,247,13,1,1,11,5,0,3,130,2,1,0,157,85,125,252,42,173,225,44,31,103,1,49,36,91,225,158,114,75,252,169,111,234,92,20,182,62,78,71,100,120,177,6,147,151,61,49,51,181,57,215,194,113,54,63,218,100,108,124,208,117,57,109,187,15,49, - 228,194,143,251,108,209,161,148,24,34,238,233,102,103,58,83,77,221,152,186,182,30,120,216,54,46,156,169,130,86,0,3,176,5,190,137,232,105,224,186,9,238,123,223,106,111,190,41,203,110,216,63,72,117,1,217,24,222,109,130,12,245,109,35,84,228,120, - 83,117,36,87,185,221,159,243,142,61,198,243,104,223,101,246,164,86,170,247,149,182,40,85,39,208,36,189,64,160,191,25,182,18,18,17,93,61,39,224,64,150,56,172,247,249,41,137,195,188,23,176,84,133,66,179,252,12,158,139,25,137,231,240,11,106,129, - 194,129,25,66,25,82,117,138,54,194,29,195,97,115,46,44,107,123,110,63,44,9,120,20,233,145,178,169,91,223,73,163,116,12,188,236,145,128,210,61,230,74,62,102,59,79,187,134,250,50,26,217,150,244,143,246,145,1,246,206,198,116,253,246,76,114,111, - 16,171,117,48,197,52,176,122,216,80,254,10,88,221,64,60,199,84,109,157,99,116,72,44,177,78,71,45,193,20,4,113,191,100,249,36,190,115,109,202,142,9,189,179,1,87,73,84,100,217,115,215,127,30,91,68,1,142,90,25,145,107,13,159,164,40,220,103,25,40, - 36,186,56,75,154,110,251,33,84,107,106,69,17,71,169,241,183,174,200,232,137,94,79,157,210,208,76,118,181,87,84,9,177,105,1,68,126,124,161,97,108,115,254,10,187,236,65,102,61,105,253,203,193,65,73,126,126,147,190,203,248,59,228,183,21,191,180, - 206,62,165,49,81,132,188,191,2,193,130,162,123,23,29,21,137,141,112,254,231,181,208,40,26,137,11,143,54,218,186,76,249,155,255,10,233,52,248,36,53,103,43,224,13,184,230,140,153,214,225,34,234,240,39,66,61,37,148,230,116,116,91,106,209,158,62, - 237,126,160,49,51,125,188,203,233,123,191,56,112,68,209,144,241,200,171,58,138,58,8,98,127,217,112,99,83,77,141,238,130,109,165,5,16,193,113,6,106,16,180,29,85,51,88,179,161,112,102,242,161,130,3,80,48,130,2,56,2,1,1,48,129,249,161,129,209,164, - 129,206,48,129,203,49,11,48,9,6,3,85,4,6,19,2,85,83,49,19,48,17,6,3,85,4,8,19,10,87,97,115,104,105,110,103,116,111,110,49,16,48,14,6,3,85,4,7,19,7,82,101,100,109,111,110,100,49,30,48,28,6,3,85,4,10,19,21,77,105,99,114,111,115,111,102,116,32, - 67,111,114,112,111,114,97,116,105,111,110,49,37,48,35,6,3,85,4,11,19,28,77,105,99,114,111,115,111,102,116,32,65,109,101,114,105,99,97,32,79,112,101,114,97,116,105,111,110,115,49,39,48,37,6,3,85,4,11,19,30,110,83,104,105,101,108,100,32,84,83, - 83,32,69,83,78,58,65,48,48,48,45,48,53,69,48,45,68,57,52,55,49,37,48,35,6,3,85,4,3,19,28,77,105,99,114,111,115,111,102,116,32,84,105,109,101,45,83,116,97,109,112,32,83,101,114,118,105,99,101,162,35,10,1,1,48,7,6,5,43,14,3,2,26,3,21,0,128,6,137, - 117,187,92,48,193,136,20,181,74,48,50,122,152,189,187,165,222,160,129,131,48,129,128,164,126,48,124,49,11,48,9,6,3,85,4,6,19,2,85,83,49,19,48,17,6,3,85,4,8,19,10,87,97,115,104,105,110,103,116,111,110,49,16,48,14,6,3,85,4,7,19,7,82,101,100,109, - 111,110,100,49,30,48,28,6,3,85,4,10,19,21,77,105,99,114,111,115,111,102,116,32,67,111,114,112,111,114,97,116,105,111,110,49,38,48,36,6,3,85,4,3,19,29,77,105,99,114,111,115,111,102,116,32,84,105,109,101,45,83,116,97,109,112,32,80,67,65,32,50, - 48,49,48,48,13,6,9,42,134,72,134,247,13,1,1,11,5,0,2,5,0,233,126,114,166,48,34,24,15,50,48,50,52,48,50,50,48,48,48,51,54,53,52,90,24,15,50,48,50,52,48,50,50,49,48,48,51,54,53,52,90,48,119,48,61,6,10,43,6,1,4,1,132,89,10,4,1,49,47,48,45,48,10, - 2,5,0,233,126,114,166,2,1,0,48,10,2,1,0,2,2,27,143,2,1,255,48,7,2,1,0,2,2,18,211,48,10,2,5,0,233,127,196,38,2,1,0,48,54,6,10,43,6,1,4,1,132,89,10,4,2,49,40,48,38,48,12,6,10,43,6,1,4,1,132,89,10,3,2,160,10,48,8,2,1,0,2,3,7,161,32,161,10,48,8, - 2,1,0,2,3,1,134,160,48,13,6,9,42,134,72,134,247,13,1,1,11,5,0,3,130,1,1,0,151,68,194,222,8,249,150,245,17,97,109,145,35,119,119,166,148,143,15,15,103,7,87,63,201,15,212,246,127,147,238,1,254,174,125,130,174,162,247,207,83,251,26,236,207,21,154, - 5,219,215,30,97,110,38,205,99,177,239,247,46,43,26,139,139,203,26,139,65,67,166,135,71,177,198,195,225,36,38,220,74,127,91,5,204,127,78,61,206,192,131,239,30,156,158,38,154,9,175,67,139,112,246,27,32,182,118,115,246,29,29,50,63,32,195,143,196, - 215,218,56,136,6,151,177,82,14,152,197,158,75,219,163,150,7,133,103,26,143,164,58,227,179,141,2,43,31,251,70,8,241,92,74,199,179,207,124,193,138,197,52,227,136,115,208,147,214,44,171,248,48,192,12,244,194,35,247,202,213,205,77,92,110,88,68,47, - 89,213,173,246,4,151,133,16,31,173,85,15,28,61,97,200,54,94,217,164,185,144,1,210,106,195,191,215,214,86,156,171,204,159,225,98,201,235,8,170,120,122,17,66,203,33,92,117,31,123,177,230,189,70,210,171,191,126,224,192,125,66,41,1,154,73,13,83, - 161,79,176,139,49,130,4,13,48,130,4,9,2,1,1,48,129,147,48,124,49,11,48,9,6,3,85,4,6,19,2,85,83,49,19,48,17,6,3,85,4,8,19,10,87,97,115,104,105,110,103,116,111,110,49,16,48,14,6,3,85,4,7,19,7,82,101,100,109,111,110,100,49,30,48,28,6,3,85,4,10, - 19,21,77,105,99,114,111,115,111,102,116,32,67,111,114,112,111,114,97,116,105,111,110,49,38,48,36,6,3,85,4,3,19,29,77,105,99,114,111,115,111,102,116,32,84,105,109,101,45,83,116,97,109,112,32,80,67,65,32,50,48,49,48,2,19,51,0,0,1,235,224,24,108, - 181,182,239,56,237,0,1,0,0,1,235,48,13,6,9,96,134,72,1,101,3,4,2,1,5,0,160,130,1,74,48,26,6,9,42,134,72,134,247,13,1,9,3,49,13,6,11,42,134,72,134,247,13,1,9,16,1,4,48,47,6,9,42,134,72,134,247,13,1,9,4,49,34,4,32,151,201,61,68,146,194,121,175, - 104,163,91,181,115,157,179,26,219,162,16,40,222,203,8,254,199,174,146,145,241,209,116,227,48,129,250,6,11,42,134,72,134,247,13,1,9,16,2,47,49,129,234,48,129,231,48,129,228,48,129,189,4,32,206,183,107,190,95,105,3,225,127,196,129,13,59,100,216, - 52,148,128,134,221,139,53,236,207,190,161,212,151,97,44,44,248,48,129,152,48,129,128,164,126,48,124,49,11,48,9,6,3,85,4,6,19,2,85,83,49,19,48,17,6,3,85,4,8,19,10,87,97,115,104,105,110,103,116,111,110,49,16,48,14,6,3,85,4,7,19,7,82,101,100,109, - 111,110,100,49,30,48,28,6,3,85,4,10,19,21,77,105,99,114,111,115,111,102,116,32,67,111,114,112,111,114,97,116,105,111,110,49,38,48,36,6,3,85,4,3,19,29,77,105,99,114,111,115,111,102,116,32,84,105,109,101,45,83,116,97,109,112,32,80,67,65,32,50, - 48,49,48,2,19,51,0,0,1,235,224,24,108,181,182,239,56,237,0,1,0,0,1,235,48,34,4,32,99,50,207,7,160,52,223,26,165,199,43,140,131,152,3,80,142,109,149,133,27,194,4,244,248,221,140,193,186,222,175,79,48,13,6,9,42,134,72,134,247,13,1,1,11,5,0,4,130, - 2,0,1,147,32,201,2,127,98,23,169,207,23,92,32,32,203,102,44,86,147,219,251,237,185,12,55,55,142,37,249,236,40,102,230,56,42,206,158,156,235,205,189,162,29,36,84,105,4,33,28,197,222,114,232,202,0,218,60,44,106,231,52,225,137,84,106,209,221,192, - 242,113,122,45,13,238,79,193,77,55,161,17,193,2,219,94,5,255,248,208,46,179,126,28,152,121,10,1,75,104,39,120,202,43,234,226,134,226,246,227,121,158,122,165,221,132,76,187,52,105,214,190,70,112,187,213,255,85,230,106,148,37,105,134,117,164,9, - 224,247,137,230,65,2,69,72,206,148,23,207,217,8,91,126,77,119,255,104,221,138,0,135,130,220,196,236,75,201,60,245,6,15,138,82,166,90,18,21,72,69,61,142,232,225,22,160,146,138,116,140,240,89,133,144,60,235,86,26,101,254,202,116,215,53,169,187, - 165,180,30,139,23,211,119,37,77,45,21,7,41,21,68,202,176,39,189,198,174,63,164,37,199,222,190,96,162,227,2,137,112,145,13,58,122,199,31,21,212,45,251,106,254,156,186,55,127,187,7,68,160,148,171,216,251,143,0,153,165,69,16,223,21,81,211,195,214, - 226,102,124,29,255,88,178,102,160,68,0,211,61,167,2,88,100,59,210,170,168,149,61,205,16,62,1,6,247,114,194,202,132,154,19,44,120,108,249,96,201,144,88,76,228,98,102,254,66,106,58,112,32,17,211,63,111,89,163,136,5,230,38,221,177,12,22,211,70, - 207,31,84,171,137,139,83,106,161,118,63,232,176,151,33,15,64,176,128,224,231,243,76,9,140,135,140,83,27,66,101,240,205,31,178,62,4,70,130,113,123,54,237,140,161,104,91,132,177,226,133,5,222,51,53,223,200,197,206,40,246,115,17,254,152,119,167, - 22,222,182,45,33,134,154,174,111,64,201,160,117,114,72,136,114,16,20,46,240,147,134,86,165,154,248,97,159,68,122,56,148,82,72,28,238,107,226,248,81,191,167,35,91,170,206,29,252,86,98,206,145,53,46,48,13,82,227,91,248,87,7,183,57,183,222,175, - 157,85,31,13,5,19,242,5,122,153,235,103,98,124,199,63,39,155,46,68,3,99,3,41,121,86,235,187,96,128,37,208,149,9,228,85,0,0,0,0,0,0,0 - }; - #endif - - return DISTRHO_NAMESPACE::MemoryDLL (dllData, sizeof (dllData)); -} - -#endif - -#endif // CHOC_WEBVIEW_HEADER_INCLUDED diff --git a/dpf/distrho/extra/sofd/libsofd.c b/dpf/distrho/extra/sofd/libsofd.c deleted file mode 100644 index 6aaeb68..0000000 --- a/dpf/distrho/extra/sofd/libsofd.c +++ /dev/null @@ -1,2482 +0,0 @@ -/* libSOFD - Simple Open File Dialog [for X11 without toolkit] - * - * Copyright (C) 2014 Robin Gareus - * - * 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. - */ - -/* Test and example: - * gcc -Wall -D SOFD_TEST -g -o sofd libsofd.c -lX11 - * - * public API documentation and example code at the bottom of this file - * - * This small lib may one day include openGL rendering and - * wayland window support, but not today. Today we celebrate - * 30 years of X11. - */ - -#ifdef SOFD_TEST -#define HAVE_X11 -#include "libsofd.h" -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if defined(__clang__) -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wnarrowing" -#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wnarrowing" -#endif - -// shared 'recently used' implementation -// sadly, xbel does not qualify as simple. -// hence we use a simple format alike the -// gtk-bookmark list (one file per line) - -#define MAX_RECENT_ENTRIES 24 -#define MAX_RECENT_AGE (15552000) // 180 days (in sec) - -typedef struct { - char path[1024]; - time_t atime; -} FibRecentFile; - -static FibRecentFile *_recentlist = NULL; -static unsigned int _recentcnt = 0; -static uint8_t _recentlock = 0; - -static int fib_isxdigit (const char x) { - if ( - (x >= '0' && x <= '9') - || - (x >= 'a' && x <= 'f') - || - (x >= 'A' && x <= 'F') - ) return 1; - return 0; -} - -static void decode_3986 (char *str) { - int len = strlen (str); - int idx = 0; - while (idx + 2 < len) { - char *in = &str[idx]; - if (('%' == *in) && fib_isxdigit (in[1]) && fib_isxdigit (in[2])) { - char hexstr[3]; - hexstr[0] = in[1]; - hexstr[1] = in[2]; - hexstr[2] = 0; - long hex = strtol (hexstr, NULL, 16); - *in = hex; - memmove (&str[idx+1], &str[idx + 3], len - idx - 2); - len -= 2; - } - ++idx; - } -} - -static char *encode_3986 (const char *str) { - size_t alloc, newlen; - char *ns = NULL; - unsigned char in; - size_t i = 0; - size_t length; - - if (!str) return strdup (""); - - alloc = strlen (str) + 1; - newlen = alloc; - - ns = (char*) malloc (alloc); - - length = alloc; - while (--length) { - in = *str; - - switch (in) { - case '0': case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': - case 'a': case 'b': case 'c': case 'd': case 'e': - case 'f': case 'g': case 'h': case 'i': case 'j': - case 'k': case 'l': case 'm': case 'n': case 'o': - case 'p': case 'q': case 'r': case 's': case 't': - case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': - case 'A': case 'B': case 'C': case 'D': case 'E': - case 'F': case 'G': case 'H': case 'I': case 'J': - case 'K': case 'L': case 'M': case 'N': case 'O': - case 'P': case 'Q': case 'R': case 'S': case 'T': - case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': - case '_': case '~': case '.': case '-': - case '/': case ',': // XXX not in RFC3986 - ns[i++] = in; - break; - default: - newlen += 2; /* this'll become a %XX */ - if (newlen > alloc) { - alloc *= 2; - ns = (char*) realloc (ns, alloc); - } - snprintf (&ns[i], 4, "%%%02X", in); - i += 3; - break; - } - ++str; - } - ns[i] = 0; - return ns; -} - -void x_fib_free_recent () { - free (_recentlist); - _recentlist = NULL; - _recentcnt = 0; -} - -static int cmp_recent (const void *p1, const void *p2) { - FibRecentFile *a = (FibRecentFile*) p1; - FibRecentFile *b = (FibRecentFile*) p2; - if (a->atime == b->atime) return 0; - return a->atime < b->atime; -} - -int x_fib_add_recent (const char *path, time_t atime) { - unsigned int i; - struct stat fs; - if (_recentlock) { return -1; } - if (access (path, R_OK)) { - return -1; - } - if (stat (path, &fs)) { - return -1; - } - if (!S_ISREG (fs.st_mode)) { - return -1; - } - if (atime == 0) atime = time (NULL); - if (MAX_RECENT_AGE > 0 && atime + MAX_RECENT_AGE < time (NULL)) { - return -1; - } - - for (i = 0; i < _recentcnt; ++i) { - if (!strcmp (_recentlist[i].path, path)) { - if (_recentlist[i].atime < atime) { - _recentlist[i].atime = atime; - } - qsort (_recentlist, _recentcnt, sizeof(FibRecentFile), cmp_recent); - return _recentcnt; - } - } - _recentlist = (FibRecentFile*)realloc (_recentlist, (_recentcnt + 1) * sizeof(FibRecentFile)); - _recentlist[_recentcnt].atime = atime; - strcpy (_recentlist[_recentcnt].path, path); - qsort (_recentlist, _recentcnt + 1, sizeof(FibRecentFile), cmp_recent); - - if (_recentcnt >= MAX_RECENT_ENTRIES) { - return (_recentcnt); - } - return (++_recentcnt); -} - -#ifdef PATHSEP -#undef PATHSEP -#endif - -#ifdef PLATFORM_WINDOWS -#define DIRSEP '\\' -#else -#define DIRSEP '/' -#endif - -static void mkpath(const char *dir) { - char tmp[1024]; - char *p; - size_t len; - - snprintf (tmp, sizeof(tmp), "%s", dir); - len = strlen(tmp); - if (tmp[len - 1] == '/') - tmp[len - 1] = 0; - for (p = tmp + 1; *p; ++p) - if(*p == DIRSEP) { - *p = 0; -#ifdef PLATFORM_WINDOWS - mkdir(tmp); -#else - mkdir(tmp, 0755); -#endif - *p = DIRSEP; - } -#ifdef PLATFORM_WINDOWS - mkdir(tmp); -#else - mkdir(tmp, 0755); -#endif -} - -int x_fib_save_recent (const char *fn) { - if (_recentlock) { return -1; } - if (!fn) { return -1; } - if (_recentcnt < 1 || !_recentlist) { return -1; } - unsigned int i; - char *dn = strdup (fn); - mkpath (dirname (dn)); - free (dn); - - FILE *rf = fopen (fn, "w"); - if (!rf) return -1; - - qsort (_recentlist, _recentcnt, sizeof(FibRecentFile), cmp_recent); - for (i = 0; i < _recentcnt; ++i) { - char *n = encode_3986 (_recentlist[i].path); - fprintf (rf, "%s %lu\n", n, _recentlist[i].atime); - free (n); - } - fclose (rf); - return 0; -} - -int x_fib_load_recent (const char *fn) { - char tmp[1024]; - if (_recentlock) { return -1; } - if (!fn) { return -1; } - x_fib_free_recent (); - if (access (fn, R_OK)) { - return -1; - } - FILE *rf = fopen (fn, "r"); - if (!rf) return -1; - while (fgets (tmp, sizeof(tmp), rf) - && strlen (tmp) > 1 - && strlen (tmp) < sizeof(tmp)) - { - char *s; - tmp[strlen (tmp) - 1] = '\0'; // strip newline - if (!(s = strchr (tmp, ' '))) { // find name <> atime sep - continue; - } - *s = '\0'; - time_t t = atol (++s); - decode_3986 (tmp); - x_fib_add_recent (tmp, t); - } - fclose (rf); - return 0; -} - -unsigned int x_fib_recent_count () { - return _recentcnt; -} - -const char *x_fib_recent_at (unsigned int i) { - if (i >= _recentcnt) - return NULL; - return _recentlist[i].path; -} - -#ifdef PLATFORM_WINDOWS -#define PATHSEP "\\" -#else -#define PATHSEP "/" -#endif - -const char *x_fib_recent_file(const char *appname) { - static char recent_file[1024]; - assert(!strchr(appname, '/')); - const char *xdg = getenv("XDG_DATA_HOME"); - if (xdg && (strlen(xdg) + strlen(appname) + 10) < sizeof(recent_file)) { - sprintf(recent_file, "%s" PATHSEP "%s" PATHSEP "recent", xdg, appname); - return recent_file; - } -#ifdef PLATFORM_WINDOWS - const char * homedrive = getenv("HOMEDRIVE"); - const char * homepath = getenv("HOMEPATH"); - if (homedrive && homepath && (strlen(homedrive) + strlen(homepath) + strlen(appname) + 29) < PATH_MAX) { - sprintf(recent_file, "%s%s" PATHSEP "Application Data" PATHSEP "%s" PATHSEP "recent.txt", homedrive, homepath, appname); - return recent_file; - } -#elif defined PLATFORM_OSX - const char *home = getenv("HOME"); - if (home && (strlen(home) + strlen(appname) + 29) < sizeof(recent_file)) { - sprintf(recent_file, "%s/Library/Preferences/%s/recent", home, appname); - return recent_file; - } -#else - const char *home = getenv("HOME"); - if (home && (strlen(home) + strlen(appname) + 22) < sizeof(recent_file)) { - sprintf(recent_file, "%s/.local/share/%s/recent", home, appname); - return recent_file; - } -#endif - return NULL; -} - -#ifdef HAVE_X11 -#include - -#include -#include -#include -#include -#include - -#if defined(__linux__) || defined(__linux) -#define HAVE_MNTENT -#include -#endif - -#ifndef MIN -#define MIN(A,B) ( (A) < (B) ? (A) : (B) ) -#endif - -#ifndef MAX -#define MAX(A,B) ( (A) < (B) ? (B) : (A) ) -#endif - -static Window _fib_win = 0; -static GC _fib_gc = 0; -static XColor _c_gray0, _c_gray1, _c_gray2, _c_gray3, _c_gray4, _c_gray5; -static Font _fibfont = 0; -static Pixmap _pixbuffer = None; - -static int _fib_width = 100; -static int _fib_height = 100; -static int _btn_w = 0; -static int _btn_span = 0; -static double _scalefactor = 1; - -static int _fib_font_height = 0; -static int _fib_dir_indent = 0; -static int _fib_spc_norm = 0; -static int _fib_font_ascent = 0; -static int _fib_font_vsep = 0; -static int _fib_font_size_width = 0; -static int _fib_font_time_width = 0; -static int _fib_place_width = 0; - -static int _scrl_f = 0; -static int _scrl_y0 = -1; -static int _scrl_y1 = -1; -static int _scrl_my = -1; -static int _scrl_mf = -1; -static int _view_p = -1; - -static int _fsel = -1; -static int _hov_b = -1; -static int _hov_f = -1; -static int _hov_p = -1; -static int _hov_h = -1; -static int _hov_l = -1; -static int _hov_s = -1; -static int _sort = 0; -static int _columns = 0; -static int _fib_filter_fn = 1; -static int _fib_hidden_fn = 0; -static int _fib_show_places = 0; - -static uint8_t _fib_mapped = 0; -static uint8_t _fib_resized = 0; -static unsigned long _dblclk = 0; - -static int _status = -2; -static char _rv_open[1024] = ""; - -static char _fib_cfg_custom_places[1024] = ""; -static char _fib_cfg_custom_font[256] = ""; -static char _fib_cfg_title[128] = "xjadeo - Open Video File"; - -typedef struct { - char name[256]; - int x0; - int xw; -} FibPathButton; - -typedef struct { - char name[256]; - char strtime[32]; - char strsize[32]; - int ssizew; - off_t size; - time_t mtime; - uint8_t flags; // 2: selected, 4: isdir 8: recent-entry - FibRecentFile *rfp; -} FibFileEntry; - -typedef struct { - char text[24]; - uint8_t flags; // 2: selected, 4: toggle, 8 disable - int x0; - int tw; - int xw; - void (*callback)(Display*); -} FibButton; - -typedef struct { - char name[256]; - char path[1024]; - uint8_t flags; // 1: hover, 2: selected, 4:add sep -} FibPlace; - -static char _cur_path[1024] = ""; -static FibFileEntry *_dirlist = NULL; -static FibPathButton *_pathbtn = NULL; -static FibPlace *_placelist = NULL; -static int _dircount = 0; -static int _pathparts = 0; -static int _placecnt = 0; - -static FibButton _btn_ok; -static FibButton _btn_cancel; -static FibButton _btn_filter; -static FibButton _btn_places; -static FibButton _btn_hidden; -static FibButton *_btns[] = {&_btn_places, &_btn_filter, &_btn_hidden, &_btn_cancel, &_btn_ok}; - -static int (*_fib_filter_function)(const char *filename); - -/* hardcoded layout */ -#define DSEP 6 // px; horiz space beween elements, also l+r margin for file-list -#define PSEP 4 // px; horiz space beween paths -#define FILECOLUMN (17 * _fib_dir_indent) //px; min width of file-column -#define LISTTOP 2.7 //em; top of the file-browser list -#define LISTBOT 4.75 //em; bottom of the file-browers list -#define BTNBTMMARGIN 0.75 //em; height/margin of the button row -#define BTNPADDING 2 // px - only used for open/cancel buttons -#define SCROLLBARW (3 + (_fib_spc_norm&~1)) //px; - should be SCROLLBARW = (N * 2 + 3) -#define SCROLLBOXH 10 //px; arrow box top+bottom -#define PLACESW _fib_place_width //px; -#define PLACESWMAX (15 *_fib_spc_norm) //px; -#define PATHBTNTOP _fib_font_vsep //px; offset by (_fib_font_ascent); -#define FAREAMRGB 3 //px; base L+R margin -#define FAREAMRGR (FAREAMRGB + 1) //px; right margin of file-area + 1 (line width) -#define FAREAMRGL (_fib_show_places ? PLACESW / _scalefactor + FAREAMRGB : FAREAMRGB) //px; left margin of file-area -#define TEXTSEP 4 //px; -#define FAREATEXTL (FAREAMRGL + TEXTSEP) //px; filename text-left FAREAMRGL + TEXTSEP -#define SORTBTNOFF -10 //px; - -#ifndef DBLCLKTME -#define DBLCLKTME 200 //msec; double click time -#endif - -#define DRAW_OUTLINE -#define DOUBLE_BUFFER -#define LIST_ENTRY_HOVER - -static int query_font_geometry (Display *dpy, GC gc, const char *txt, int *w, int *h, int *a, int *d) { - XCharStruct text_structure; - int font_direction, font_ascent, font_descent; - XFontStruct *fontinfo = XQueryFont (dpy, XGContextFromGC (gc)); - - if (!fontinfo) { return -1; } - XTextExtents (fontinfo, txt, strlen (txt), &font_direction, &font_ascent, &font_descent, &text_structure); - if (w) *w = XTextWidth (fontinfo, txt, strlen (txt)); - if (h) *h = text_structure.ascent + text_structure.descent; - if (a) *a = text_structure.ascent; - if (d) *d = text_structure.descent; -#ifndef DISTRHO_OS_HAIKU // FIXME - XFreeFontInfo (NULL, fontinfo, 1); -#endif - return 0; -} - -static void VDrawRectangle (Display *dpy, Drawable d, GC gc, int x, int y, unsigned int w, unsigned int h) { -#ifdef DRAW_OUTLINE - XSetForeground (dpy, gc, _c_gray5.pixel); - XDrawLine (dpy, d, gc, x + 1, y + h, x + w, y + h); - XDrawLine (dpy, d, gc, x + w, y + 1, x + w, y + h); - XDrawLine (dpy, d, gc, x + 1, y, x + w, y); - XDrawLine (dpy, d, gc, x, y + 1, x, y + h); -#else - const unsigned long blackColor = BlackPixel (dpy, DefaultScreen (dpy)); - XSetForeground (dpy, _fib_gc, blackColor); - XDrawRectangle (dpy, d, gc, x, y, w, h); -#endif -} - -static void fib_expose (Display *dpy, Window realwin) { - int i; - XID win; - if (!_fib_mapped) return; - - if (_fib_resized -#ifdef DOUBLE_BUFFER - || !_pixbuffer -#endif - ) - { -#ifdef DOUBLE_BUFFER - unsigned int w = 0, h = 0; - if (_pixbuffer != None) { - Window ignored_w; - int ignored_i; - unsigned int ignored_u; - XGetGeometry(dpy, _pixbuffer, &ignored_w, &ignored_i, &ignored_i, &w, &h, &ignored_u, &ignored_u); - if (_fib_width != (int)w || _fib_height != (int)h) { - XFreePixmap (dpy, _pixbuffer); - _pixbuffer = None; - } - } - if (_pixbuffer == None) { - XWindowAttributes wa; - XGetWindowAttributes (dpy, realwin, &wa); - _pixbuffer = XCreatePixmap (dpy, realwin, _fib_width, _fib_height, wa.depth); - } -#endif - if (_pixbuffer != None) { - XSetForeground (dpy, _fib_gc, _c_gray1.pixel); - XFillRectangle (dpy, _pixbuffer, _fib_gc, 0, 0, _fib_width, _fib_height); - } else { - XSetForeground (dpy, _fib_gc, _c_gray1.pixel); - XFillRectangle (dpy, realwin, _fib_gc, 0, 0, _fib_width, _fib_height); - } - _fib_resized = 0; - } - - if (_pixbuffer == None) { - win = realwin; - } else { - win = _pixbuffer; - } - - // Top Row: dirs and up navigation - - int ppw = 0; - int ppx = FAREAMRGB * _scalefactor; - - for (i = _pathparts - 1; i >= 0; --i) { - ppw += _pathbtn[i].xw + PSEP * _scalefactor; - if (ppw >= _fib_width - PSEP * _scalefactor - _pathbtn[0].xw - FAREAMRGB * _scalefactor) break; // XXX, first change is from "/" to "<", NOOP - } - ++i; - // border-less "<" parent/up, IFF space is limited - if (i > 0) { - if (0 == _hov_p || (_hov_p > 0 && _hov_p < _pathparts - 1)) { - XSetForeground (dpy, _fib_gc, _c_gray4.pixel); - } else { - XSetForeground (dpy, _fib_gc, _c_gray0.pixel); - } - XDrawString (dpy, win, _fib_gc, ppx, PATHBTNTOP, "<", 1); - ppx += _pathbtn[0].xw + PSEP * _scalefactor; - if (i == _pathparts) --i; - } - - _view_p = i; - - while (i < _pathparts) { - if (i == _hov_p) { - XSetForeground (dpy, _fib_gc, _c_gray0.pixel); - } else { - XSetForeground (dpy, _fib_gc, _c_gray2.pixel); - } - XFillRectangle (dpy, win, _fib_gc, - ppx + 1, PATHBTNTOP - _fib_font_ascent, - _pathbtn[i].xw - 1, _fib_font_height); - VDrawRectangle (dpy, win, _fib_gc, - ppx, PATHBTNTOP - _fib_font_ascent, - _pathbtn[i].xw, _fib_font_height); - XSetForeground (dpy, _fib_gc, _c_gray4.pixel); - XDrawString (dpy, win, _fib_gc, ppx + 1 + BTNPADDING, PATHBTNTOP, - _pathbtn[i].name, strlen (_pathbtn[i].name)); - _pathbtn[i].x0 = ppx; // current position - ppx += _pathbtn[i].xw + PSEP * _scalefactor; - ++i; - } - - // middle, scroll list of file names - const int ltop = LISTTOP * _fib_font_vsep; - const int llen = (_fib_height - LISTBOT * _fib_font_vsep) / _fib_font_vsep; - const int fsel_height = 4 * _scalefactor + llen * _fib_font_vsep; - const int fsel_width = _fib_width - (FAREAMRGL + FAREAMRGR) * _scalefactor - (llen < _dircount ? SCROLLBARW * _scalefactor : 0); - const int t_x = FAREATEXTL * _scalefactor; - int t_s = FAREATEXTL * _scalefactor + fsel_width; - int t_t = FAREATEXTL * _scalefactor + fsel_width; - - // check which colums can be visible - // depending on available width of window. - _columns = 0; - if (fsel_width > FILECOLUMN + _fib_font_size_width + _fib_font_time_width) { - _columns |= 2; - t_s = FAREAMRGL * _scalefactor + fsel_width - _fib_font_time_width - TEXTSEP * _scalefactor; - } - if (fsel_width > FILECOLUMN + _fib_font_size_width) { - _columns |= 1; - t_t = t_s - _fib_font_size_width - TEXTSEP * _scalefactor; - } - - int fstop = _scrl_f; // first entry in scroll position - const int ttop = ltop - _fib_font_height + _fib_font_ascent; - - if (fstop > 0 && fstop + llen > _dircount) { - fstop = MAX (0, _dircount - llen); - _scrl_f = fstop; - } - - // list header - XSetForeground (dpy, _fib_gc, _c_gray3.pixel); - XFillRectangle (dpy, win, _fib_gc, FAREAMRGL * _scalefactor, ltop - _fib_font_vsep, fsel_width, _fib_font_vsep); - - // draw background of file list - XSetForeground (dpy, _fib_gc, _c_gray2.pixel); - XFillRectangle (dpy, win, _fib_gc, FAREAMRGL * _scalefactor, ltop, fsel_width, fsel_height); - -#ifdef DRAW_OUTLINE - VDrawRectangle (dpy, win, _fib_gc, - FAREAMRGL * _scalefactor, - ltop - _fib_font_vsep - 1, - _fib_width - (FAREAMRGL + FAREAMRGR) * _scalefactor, - fsel_height + _fib_font_vsep + 1); -#endif - - switch (_hov_h) { - case 1: - XSetForeground (dpy, _fib_gc, _c_gray0.pixel); - XFillRectangle (dpy, win, _fib_gc, - t_x + _fib_dir_indent - (TEXTSEP - 1) * _scalefactor, - ltop - _fib_font_vsep, - t_t - t_x - _fib_dir_indent - 1 * _scalefactor, - _fib_font_vsep); - break; - case 2: - XSetForeground (dpy, _fib_gc, _c_gray0.pixel); - XFillRectangle (dpy, win, _fib_gc, - t_t - (TEXTSEP - 1) * _scalefactor, - ltop - _fib_font_vsep, - _fib_font_size_width + (TEXTSEP - 1) * _scalefactor, - _fib_font_vsep); - break; - case 3: - XSetForeground (dpy, _fib_gc, _c_gray0.pixel); - XFillRectangle (dpy, win, _fib_gc, - t_s - (TEXTSEP - 1) * _scalefactor, - ltop - _fib_font_vsep, - TEXTSEP * 2 * _scalefactor + _fib_font_time_width - 1 * _scalefactor, - _fib_font_vsep); - break; - default: - break; - } - - // column headings and sort order - int arp = MAX (2 * _scalefactor, _fib_font_height / 5); // arrow scale - const int trioff = _fib_font_height - _fib_font_ascent - arp + 1 * _scalefactor; - XPoint ptri[4] = { {0, ttop - trioff }, {arp, -arp - arp - 1 * _scalefactor}, {-arp - arp, 0}, {arp, arp + arp + 1 * _scalefactor}}; - if (_sort & 1) { - ptri[0].y = ttop -arp - arp - 1 * _scalefactor; - ptri[1].y *= -1; - ptri[3].y *= -1; - } - switch (_sort) { - case 0: - case 1: - ptri[0].x = t_t + (SORTBTNOFF + 2) * _scalefactor - arp; - XSetForeground (dpy, _fib_gc, _c_gray4.pixel); - XFillPolygon (dpy, win, _fib_gc, ptri, 3, Convex, CoordModePrevious); - XDrawLines (dpy, win, _fib_gc, ptri, 4, CoordModePrevious); - break; - case 2: - case 3: - if (_columns & 1) { - ptri[0].x = t_s + (SORTBTNOFF + 2) * _scalefactor - arp; - XSetForeground (dpy, _fib_gc, _c_gray4.pixel); - XFillPolygon (dpy, win, _fib_gc, ptri, 3, Convex, CoordModePrevious); - XDrawLines (dpy, win, _fib_gc, ptri, 4, CoordModePrevious); - } - break; - case 4: - case 5: - if (_columns & 2) { - ptri[0].x = FAREATEXTL * _scalefactor + fsel_width + (SORTBTNOFF + 2) * _scalefactor - arp; - XSetForeground (dpy, _fib_gc, _c_gray4.pixel); - XFillPolygon (dpy, win, _fib_gc, ptri, 3, Convex, CoordModePrevious); - XDrawLines (dpy, win, _fib_gc, ptri, 4, CoordModePrevious); - } - break; - } - -#if 0 // bottom header bottom border - XSetForeground (dpy, _fib_gc, _c_gray5.pixel); - XSetLineAttributes (dpy, _fib_gc, 1, LineOnOffDash, CapButt, JoinMiter); - XDrawLine (dpy, win, _fib_gc, - FAREAMRGL + 1, ltop, - FAREAMRGL + fsel_width, ltop); - XSetLineAttributes (dpy, _fib_gc, 1, LineSolid, CapButt, JoinMiter); -#endif - - XSetForeground (dpy, _fib_gc, _c_gray2.pixel); - XDrawLine (dpy, win, _fib_gc, - t_x + _fib_dir_indent - TEXTSEP * _scalefactor, ltop - _fib_font_vsep + 3 * _scalefactor, - t_x + _fib_dir_indent - TEXTSEP * _scalefactor, ltop - 3 * _scalefactor); - - XSetForeground (dpy, _fib_gc, _c_gray4.pixel); - XDrawString (dpy, win, _fib_gc, t_x + _fib_dir_indent, ttop, "Name", 4); - - if (_columns & 1) { - XSetForeground (dpy, _fib_gc, _c_gray2.pixel); - XDrawLine (dpy, win, _fib_gc, - t_t - TEXTSEP * _scalefactor, ltop - _fib_font_vsep + 3 * _scalefactor, - t_t - TEXTSEP * _scalefactor, ltop - 3 * _scalefactor); - XSetForeground (dpy, _fib_gc, _c_gray4.pixel); - XDrawString (dpy, win, _fib_gc, t_t, ttop, "Size", 4); - } - - if (_columns & 2) { - XSetForeground (dpy, _fib_gc, _c_gray2.pixel); - XDrawLine (dpy, win, _fib_gc, - t_s - TEXTSEP * _scalefactor, ltop - _fib_font_vsep + 3 * _scalefactor, - t_s - TEXTSEP * _scalefactor, ltop - 3 * _scalefactor); - XSetForeground (dpy, _fib_gc, _c_gray4.pixel); - if (_pathparts > 0) - XDrawString (dpy, win, _fib_gc, t_s, ttop, "Last Modified", 13); - else - XDrawString (dpy, win, _fib_gc, t_s, ttop, "Last Used", 9); - } - - // scrollbar sep - if (llen < _dircount) { - const int sx0 = _fib_width - (SCROLLBARW + FAREAMRGR) * _scalefactor; - XSetForeground (dpy, _fib_gc, _c_gray2.pixel); - XDrawLine (dpy, win, _fib_gc, - sx0 - 1, ltop - _fib_font_vsep, -#ifdef DRAW_OUTLINE - sx0 - 1, ltop + fsel_height -#else - sx0 - 1, ltop - 1 -#endif - ); - } - - // clip area for file-name - XRectangle clp = {(FAREAMRGL + 1) * _scalefactor, ltop, - t_t - (FAREAMRGL + TEXTSEP * 2 + 1) * _scalefactor, fsel_height}; - - // list files in view - for (i = 0; i < llen; ++i) { - const int j = i + fstop; - if (j >= _dircount) break; - - const int t_y = ltop + (i+1) * _fib_font_vsep - 4; - - if (_dirlist[j].flags & 2) { - XSetForeground (dpy, _fib_gc, _c_gray5.pixel); - XFillRectangle (dpy, win, _fib_gc, - FAREAMRGL * _scalefactor, t_y - _fib_font_ascent, fsel_width, _fib_font_height); - } - /* - if (_hov_f == j && !(_dirlist[j].flags & 2)) { - XSetForeground (dpy, _fib_gc, _c_gray4.pixel); - } - */ - if (_dirlist[j].flags & 4) { - XSetForeground (dpy, _fib_gc, (_dirlist[j].flags & 2) ? _c_gray3.pixel : _c_gray5.pixel); - XDrawString (dpy, win, _fib_gc, t_x, t_y, "D", 1); - } - XSetClipRectangles (dpy, _fib_gc, 0, 0, &clp, 1, Unsorted); - XSetForeground (dpy, _fib_gc, _c_gray4.pixel); - XDrawString (dpy, win, _fib_gc, - t_x + _fib_dir_indent, t_y, - _dirlist[j].name, strlen (_dirlist[j].name)); - XSetClipMask (dpy, _fib_gc, None); - - if (_columns & 1) // right-aligned 'size' - XDrawString (dpy, win, _fib_gc, - t_s - (TEXTSEP + 2) * _scalefactor - _dirlist[j].ssizew, t_y, - _dirlist[j].strsize, strlen (_dirlist[j].strsize)); - if (_columns & 2) - XDrawString (dpy, win, _fib_gc, - t_s, t_y, - _dirlist[j].strtime, strlen (_dirlist[j].strtime)); - } - - // scrollbar - if (llen < _dircount) { - float sl = (fsel_height + _fib_font_vsep - (SCROLLBOXH + SCROLLBOXH) * _scalefactor) / (float) _dircount; - sl = MAX ((8. * _scalefactor / llen), sl); // 8px min height of scroller - const int sy1 = llen * sl; - const float mx = (fsel_height + _fib_font_vsep - (SCROLLBOXH + SCROLLBOXH) * _scalefactor - sy1) / (float)(_dircount - llen); - const int sy0 = fstop * mx; - const int sx0 = _fib_width - (SCROLLBARW + FAREAMRGR) * _scalefactor; - const int stop = ltop - _fib_font_vsep; - - _scrl_y0 = stop + SCROLLBOXH * _scalefactor + sy0; - _scrl_y1 = _scrl_y0 + sy1; - - assert (fstop + llen <= _dircount); - // scroll-bar background - XSetForeground (dpy, _fib_gc, _c_gray1.pixel); - XFillRectangle (dpy, win, _fib_gc, sx0, stop, SCROLLBARW * _scalefactor, fsel_height + _fib_font_vsep); - - // scroller - if (_hov_s == 0 || _hov_s == 1 || _hov_s == 2) { - XSetForeground (dpy, _fib_gc, _c_gray4.pixel); - } else { - XSetForeground (dpy, _fib_gc, _c_gray0.pixel); - } - XFillRectangle (dpy, win, _fib_gc, sx0 + 1 * _scalefactor, stop + SCROLLBOXH * _scalefactor + sy0, (SCROLLBARW - 2) * _scalefactor, sy1); - - int scrw = (SCROLLBARW -3) / 2 * _scalefactor; - // arrows top and bottom - if (_hov_s == 1) { - XSetForeground (dpy, _fib_gc, _c_gray4.pixel); - } else { - XSetForeground (dpy, _fib_gc, _c_gray0.pixel); - } - XPoint ptst[4] = { {sx0 + 1 * _scalefactor, stop + 8 * _scalefactor}, {scrw, -7 * _scalefactor}, {scrw, 7 * _scalefactor}, {-2 * scrw, 0}}; - XFillPolygon (dpy, win, _fib_gc, ptst, 3, Convex, CoordModePrevious); - XDrawLines (dpy, win, _fib_gc, ptst, 4, CoordModePrevious); - - if (_hov_s == 2) { - XSetForeground (dpy, _fib_gc, _c_gray4.pixel); - } else { - XSetForeground (dpy, _fib_gc, _c_gray0.pixel); - } - XPoint ptsb[4] = { {sx0 + 1 * _scalefactor, ltop + fsel_height - 9 * _scalefactor}, {2*scrw, 0}, {-scrw, 7 * _scalefactor}, {-scrw, -7 * _scalefactor}}; - XFillPolygon (dpy, win, _fib_gc, ptsb, 3, Convex, CoordModePrevious); - XDrawLines (dpy, win, _fib_gc, ptsb, 4, CoordModePrevious); - } else { - _scrl_y0 = _scrl_y1 = -1; - } - - if (_fib_show_places) { - assert (_placecnt > 0); - - // heading - XSetForeground (dpy, _fib_gc, _c_gray3.pixel); - XFillRectangle (dpy, win, _fib_gc, FAREAMRGB * _scalefactor, ltop - _fib_font_vsep, PLACESW - TEXTSEP * _scalefactor, _fib_font_vsep); - - // body - XSetForeground (dpy, _fib_gc, _c_gray2.pixel); - XFillRectangle (dpy, win, _fib_gc, FAREAMRGB * _scalefactor, ltop, PLACESW - TEXTSEP * _scalefactor, fsel_height); - -#ifdef DRAW_OUTLINE - VDrawRectangle (dpy, win, _fib_gc, FAREAMRGB * _scalefactor, ltop - _fib_font_vsep -1, PLACESW - TEXTSEP * _scalefactor, fsel_height + _fib_font_vsep + 1); -#endif - - XSetForeground (dpy, _fib_gc, _c_gray4.pixel); - XDrawString (dpy, win, _fib_gc, (FAREAMRGB + TEXTSEP) * _scalefactor, ttop, "Places", 6); - - XRectangle pclip = {(FAREAMRGB + 1) * _scalefactor, ltop, PLACESW - (TEXTSEP + 1) * _scalefactor, fsel_height}; - XSetClipRectangles (dpy, _fib_gc, 0, 0, &pclip, 1, Unsorted); - const int plx = (FAREAMRGB + TEXTSEP) * _scalefactor; - for (i = 0; i < llen && i < _placecnt; ++i) { - const int ply = ltop + (i+1) * _fib_font_vsep - 4 * _scalefactor; - if (i == _hov_l) { - XSetForeground (dpy, _fib_gc, _c_gray5.pixel); - XFillRectangle (dpy, win, _fib_gc, FAREAMRGB * _scalefactor, ltop + i * _fib_font_vsep, PLACESW - TEXTSEP * _scalefactor, _fib_font_vsep); - } - XSetForeground (dpy, _fib_gc, _c_gray4.pixel); - XDrawString (dpy, win, _fib_gc, - plx, ply, - _placelist[i].name, strlen (_placelist[i].name)); - if (_placelist[i].flags & 4) { - XSetForeground (dpy, _fib_gc, _c_gray5.pixel); - const int plly = ply - _fib_font_ascent + _fib_font_height + 1 * _scalefactor; - const int pllx0 = FAREAMRGB * _scalefactor; - const int pllx1 = FAREAMRGB * _scalefactor + PLACESW - TEXTSEP * _scalefactor; - XDrawLine (dpy, win, _fib_gc, pllx0, plly, pllx1, plly); - } - } - XSetClipMask (dpy, _fib_gc, None); - - if (_placecnt > llen) { - const int plly = ltop + fsel_height - _fib_font_height + _fib_font_ascent; - const int pllx0 = FAREAMRGB * _scalefactor + (PLACESW - TEXTSEP * _scalefactor) * .75; - const int pllx1 = FAREAMRGB * _scalefactor + PLACESW - TEXTSEP * 2 * _scalefactor; - - XSetForeground (dpy, _fib_gc, _c_gray4.pixel); - XSetLineAttributes (dpy, _fib_gc, 1 * _scalefactor, LineOnOffDash, CapButt, JoinMiter); - XDrawLine (dpy, win, _fib_gc, pllx0, plly, pllx1, plly); - XSetLineAttributes (dpy, _fib_gc, 1 * _scalefactor, LineSolid, CapButt, JoinMiter); - } - } - - // Bottom Buttons - const int numb = sizeof(_btns) / sizeof(FibButton*); - int xtra = _fib_width - _btn_span; - const int cbox = _fib_font_ascent - 2 * _scalefactor; - const int bbase = _fib_height - BTNBTMMARGIN * _fib_font_vsep - BTNPADDING * _scalefactor; - const int cblw = cbox > 20 * _scalefactor - ? 5 * _scalefactor - : (cbox > 9 * _scalefactor ? 3 : 1) * _scalefactor; - - int bx = FAREAMRGB * _scalefactor; - for (i = 0; i < numb; ++i) { - if (_btns[i]->flags & 8) { continue; } - if (_btns[i]->flags & 4) { - // checkbutton - const int cby0 = bbase - cbox + (1 + BTNPADDING) * _scalefactor; - if (i == _hov_b) { - XSetForeground (dpy, _fib_gc, _c_gray0.pixel); - } else { - XSetForeground (dpy, _fib_gc, _c_gray0.pixel); - } - XDrawRectangle (dpy, win, _fib_gc, - bx, cby0 - 1, cbox + 1, cbox + 1); - - XSetForeground (dpy, _fib_gc, _c_gray4.pixel); - XDrawString (dpy, win, _fib_gc, BTNPADDING * _scalefactor + bx + _fib_font_ascent, bbase + (BTNPADDING + 1) * _scalefactor, - _btns[i]->text, strlen (_btns[i]->text)); - - if (i == _hov_b) { - XSetForeground (dpy, _fib_gc, _c_gray0.pixel); - } else { - /* if (_btns[i]->flags & 2) { - XSetForeground (dpy, _fib_gc, _c_gray1.pixel); - } else */ { - XSetForeground (dpy, _fib_gc, _c_gray2.pixel); - } - } - XFillRectangle (dpy, win, _fib_gc, - bx+1, cby0, cbox, cbox); - - if (_btns[i]->flags & 2) { - XSetLineAttributes (dpy, _fib_gc, cblw, LineSolid, CapRound, JoinMiter); - XSetForeground (dpy, _fib_gc, _c_gray4.pixel); - XDrawLine (dpy, win, _fib_gc, - bx + 2, cby0 + 1, - bx + cbox - 1, cby0 + cbox - 2); - XDrawLine (dpy, win, _fib_gc, - bx + cbox - 1, cby0 + 1, - bx + 2, cby0 + cbox - 2); - XSetLineAttributes (dpy, _fib_gc, 1, LineSolid, CapButt, JoinMiter); - } - } else { - if (xtra > 0) { - bx += xtra; - xtra = 0; - } - // pushbutton - - uint8_t can_hover = 1; // special case - if (_btns[i] == &_btn_ok) { - if (_fsel < 0 || _fsel >= _dircount) { - can_hover = 0; - } - } - - if (can_hover && i == _hov_b) { - XSetForeground (dpy, _fib_gc, _c_gray0.pixel); - } else { - XSetForeground (dpy, _fib_gc, _c_gray2.pixel); - } - XFillRectangle (dpy, win, _fib_gc, - bx + 1, bbase - _fib_font_ascent, - _btn_w - 1, _fib_font_height + BTNPADDING * 2 * _scalefactor); - VDrawRectangle (dpy, win, _fib_gc, - bx, bbase - _fib_font_ascent, - _btn_w, _fib_font_height + BTNPADDING * 2 * _scalefactor); - XSetForeground (dpy, _fib_gc, _c_gray4.pixel); - XDrawString (dpy, win, _fib_gc, bx + (_btn_w - _btns[i]->tw) * .5, 1 + bbase + BTNPADDING * _scalefactor, - _btns[i]->text, strlen (_btns[i]->text)); - } - _btns[i]->x0 = bx; - bx += _btns[i]->xw + DSEP * _scalefactor; - } - - if (_pixbuffer != None) { - XCopyArea(dpy, _pixbuffer, realwin, _fib_gc, 0, 0, _fib_width, _fib_height, 0, 0); - } - XFlush (dpy); -} - -static void fib_reset () { - _hov_p = _hov_f = _hov_h = _hov_l = -1; - _scrl_f = 0; - _fib_resized = 1; -} - -static int cmp_n_up (const void *p1, const void *p2) { - FibFileEntry *a = (FibFileEntry*) p1; - FibFileEntry *b = (FibFileEntry*) p2; - if ((a->flags & 4) && !(b->flags & 4)) return -1; - if (!(a->flags & 4) && (b->flags & 4)) return 1; - return strcmp (a->name, b->name); -} - -static int cmp_n_down (const void *p1, const void *p2) { - FibFileEntry *a = (FibFileEntry*) p1; - FibFileEntry *b = (FibFileEntry*) p2; - if ((a->flags & 4) && !(b->flags & 4)) return -1; - if (!(a->flags & 4) && (b->flags & 4)) return 1; - return strcmp (b->name, a->name); -} - -static int cmp_t_up (const void *p1, const void *p2) { - FibFileEntry *a = (FibFileEntry*) p1; - FibFileEntry *b = (FibFileEntry*) p2; - if ((a->flags & 4) && !(b->flags & 4)) return -1; - if (!(a->flags & 4) && (b->flags & 4)) return 1; - if (a->mtime == b->mtime) return 0; - return a->mtime > b->mtime ? -1 : 1; -} - -static int cmp_t_down (const void *p1, const void *p2) { - FibFileEntry *a = (FibFileEntry*) p1; - FibFileEntry *b = (FibFileEntry*) p2; - if ((a->flags & 4) && !(b->flags & 4)) return -1; - if (!(a->flags & 4) && (b->flags & 4)) return 1; - if (a->mtime == b->mtime) return 0; - return a->mtime > b->mtime ? 1 : -1; -} - -static int cmp_s_up (const void *p1, const void *p2) { - FibFileEntry *a = (FibFileEntry*) p1; - FibFileEntry *b = (FibFileEntry*) p2; - if ((a->flags & 4) && (b->flags & 4)) return 0; // dir, no size, retain order - if ((a->flags & 4) && !(b->flags & 4)) return -1; - if (!(a->flags & 4) && (b->flags & 4)) return 1; - if (a->size == b->size) return 0; - return a->size > b->size ? -1 : 1; -} - -static int cmp_s_down (const void *p1, const void *p2) { - FibFileEntry *a = (FibFileEntry*) p1; - FibFileEntry *b = (FibFileEntry*) p2; - if ((a->flags & 4) && (b->flags & 4)) return 0; // dir, no size, retain order - if ((a->flags & 4) && !(b->flags & 4)) return -1; - if (!(a->flags & 4) && (b->flags & 4)) return 1; - if (a->size == b->size) return 0; - return a->size > b->size ? 1 : -1; -} - -static void fmt_size (Display *dpy, FibFileEntry *f) { - if (f->size > 10995116277760) { - sprintf (f->strsize, "%.0f TB", f->size / 1099511627776.f); - } - if (f->size > 1099511627776) { - sprintf (f->strsize, "%.1f TB", f->size / 1099511627776.f); - } - else if (f->size > 10737418240) { - sprintf (f->strsize, "%.0f GB", f->size / 1073741824.f); - } - else if (f->size > 1073741824) { - sprintf (f->strsize, "%.1f GB", f->size / 1073741824.f); - } - else if (f->size > 10485760) { - sprintf (f->strsize, "%.0f MB", f->size / 1048576.f); - } - else if (f->size > 1048576) { - sprintf (f->strsize, "%.1f MB", f->size / 1048576.f); - } - else if (f->size > 10240) { - sprintf (f->strsize, "%.0f KB", f->size / 1024.f); - } - else if (f->size >= 1000) { - sprintf (f->strsize, "%.1f KB", f->size / 1024.f); - } - else { - sprintf (f->strsize, "%.0f B", f->size / 1.f); - } - int sw = 0; - query_font_geometry (dpy, _fib_gc, f->strsize, &sw, NULL, NULL, NULL); - if (sw > _fib_font_size_width) { - _fib_font_size_width = sw; - } - f->ssizew = sw; -} - -static void fmt_time (Display *dpy, FibFileEntry *f) { - struct tm *tmp; - tmp = localtime (&f->mtime); - if (!tmp) { - return; - } - strftime (f->strtime, sizeof(f->strtime), "%F %H:%M", tmp); - - int tw = 0; - query_font_geometry (dpy, _fib_gc, f->strtime, &tw, NULL, NULL, NULL); - if (tw > _fib_font_time_width) { - _fib_font_time_width = tw; - } -} - -static void fib_resort (const char * sel) { - if (_dircount < 1) { return; } - int (*sortfn)(const void *p1, const void *p2); - switch (_sort) { - case 1: sortfn = &cmp_n_down; break; - case 2: sortfn = &cmp_s_down; break; - case 3: sortfn = &cmp_s_up; break; - case 4: sortfn = &cmp_t_down; break; - case 5: sortfn = &cmp_t_up; break; - default: - sortfn = &cmp_n_up; - break; - } - qsort (_dirlist, _dircount, sizeof(_dirlist[0]), sortfn); - int i; - for (i = 0; i < _dircount && sel; ++i) { - if (!strcmp (_dirlist[i].name, sel)) { - _fsel = i; - break; - } - } -} - -static void fib_select (Display *dpy, int item) { - if (_fsel >= 0) { - _dirlist[_fsel].flags &= ~2; - } - _fsel = item; - if (_fsel >= 0 && _fsel < _dircount) { - _dirlist[_fsel].flags |= 2; - const int llen = (_fib_height - LISTBOT * _fib_font_vsep) / _fib_font_vsep; - if (_fsel < _scrl_f) { - _scrl_f = _fsel; - } - else if (_fsel >= _scrl_f + llen) { - _scrl_f = 1 + _fsel - llen; - } - } else { - _fsel = -1; - } - - fib_expose (dpy, _fib_win); -} - -static inline int fib_filter (const char *name) { - if (_fib_filter_function) { - return _fib_filter_function (name); - } else { - return 1; - } -} - -static void fib_pre_opendir (Display *dpy) { - if (_dirlist) free (_dirlist); - if (_pathbtn) free (_pathbtn); - _dirlist = NULL; - _pathbtn = NULL; - _dircount = 0; - _pathparts = 0; - query_font_geometry (dpy, _fib_gc, "Size ", &_fib_font_size_width, NULL, NULL, NULL); - fib_reset (); - _fsel = -1; -} - -static void fib_post_opendir (Display *dpy, const char *sel) { - if (_dircount > 0) - _fsel = 0; // select first - else - _fsel = -1; - fib_resort (sel); - - if (_dircount > 0 && _fsel >= 0) { - fib_select (dpy, _fsel); - } else { - fib_expose (dpy, _fib_win); - } -} - -static int fib_dirlistadd (Display *dpy, const int i, const char* path, const char *name, time_t mtime) { - char tp[1024]; - struct stat fs; - if (!_fib_hidden_fn && name[0] == '.') return -1; - if (!strcmp (name, ".")) return -1; - if (!strcmp (name, "..")) return -1; - strcpy (tp, path); - strcat (tp, name); - if (access (tp, R_OK)) { - return -1; - } - if (stat (tp, &fs)) { - return -1; - } - assert (i < _dircount); // could happen if dir changes while we're reading. - if (i >= _dircount) return -1; - if (S_ISDIR (fs.st_mode)) { - _dirlist[i].flags |= 4; - } - else if (S_ISREG (fs.st_mode)) { - if (!fib_filter (name)) return -1; - } -#if 0 // only needed with lstat() - else if (S_ISLNK (fs.st_mode)) { - if (!fib_filter (name)) return -1; - } -#endif - else { - return -1; - } - strcpy (_dirlist[i].name, name); - _dirlist[i].mtime = mtime > 0 ? mtime : fs.st_mtime; - _dirlist[i].size = fs.st_size; - if (!(_dirlist[i].flags & 4)) - fmt_size (dpy, &_dirlist[i]); - fmt_time (dpy, &_dirlist[i]); - return 0; -} - -static int fib_openrecent (Display *dpy, const char *sel) { - int i; - unsigned int j; - assert (_recentcnt > 0); - fib_pre_opendir (dpy); - query_font_geometry (dpy, _fib_gc, "Last Used", &_fib_font_time_width, NULL, NULL, NULL); - _dirlist = (FibFileEntry*) calloc (_recentcnt, sizeof(FibFileEntry)); - _dircount = _recentcnt; - for (j = 0, i = 0; j < _recentcnt; ++j) { - char base[1024]; - char *s = strrchr (_recentlist[j].path, '/'); - if (!s || !*++s) continue; - size_t len = (s - _recentlist[j].path); - strncpy (base, _recentlist[j].path, len); - base[len] = '\0'; - if (!fib_dirlistadd (dpy, i, base, s, _recentlist[j].atime)) { - _dirlist[i].rfp = &_recentlist[j]; - _dirlist[i].flags |= 8; - ++i; - } - } - _dircount = i; - fib_post_opendir (dpy, sel); - return _dircount; -} - -static int fib_opendir (Display *dpy, const char* path, const char *sel) { - char *t0, *t1; - int i; - - assert (path); - - if (strlen (path) == 0 && _recentcnt > 0) { // XXX we should use a better indication for this - strcpy (_cur_path, ""); - return fib_openrecent (dpy, sel); - } - - assert (strlen (path) < sizeof(_cur_path) -1); - assert (strlen (path) > 0); - assert (strstr (path, "//") == NULL); - assert (path[0] == '/'); - - fib_pre_opendir (dpy); - - query_font_geometry (dpy, _fib_gc, "Last Modified", &_fib_font_time_width, NULL, NULL, NULL); - DIR *dir = opendir (path); - if (!dir) { - strcpy (_cur_path, "/"); - } else { - int i; - struct dirent *de; - if (path != _cur_path) - strcpy (_cur_path, path); - - if (_cur_path[strlen (_cur_path) -1] != '/') - strcat (_cur_path, "/"); - - while ((de = readdir (dir))) { - if (!_fib_hidden_fn && de->d_name[0] == '.') continue; - ++_dircount; - } - - if (_dircount > 0) - _dirlist = (FibFileEntry*) calloc (_dircount, sizeof(FibFileEntry)); - - rewinddir (dir); - - i = 0; - while ((de = readdir (dir))) { - if (!fib_dirlistadd (dpy, i, _cur_path, de->d_name, 0)) - ++i; - } - _dircount = i; - closedir (dir); - } - - t0 = _cur_path; - while (*t0 && (t0 = strchr (t0, '/'))) { - ++_pathparts; - ++t0; - } - assert (_pathparts > 0); - _pathbtn = (FibPathButton*) calloc (_pathparts + 1, sizeof(FibPathButton)); - - t1 = _cur_path; - i = 0; - while (*t1 && (t0 = strchr (t1, '/'))) { - if (i == 0) { - strcpy (_pathbtn[i].name, "/"); - } else { - *t0 = 0; - strcpy (_pathbtn[i].name, t1); - } - query_font_geometry (dpy, _fib_gc, _pathbtn[i].name, &_pathbtn[i].xw, NULL, NULL, NULL); - _pathbtn[i].xw += BTNPADDING + BTNPADDING; - *t0 = '/'; - t1 = t0 + 1; - ++i; - } - fib_post_opendir (dpy, sel); - return _dircount; -} - -static int fib_open (Display *dpy, int item) { - char tp[1024]; - if (_dirlist[item].flags & 8) { - assert (_dirlist[item].rfp); - strcpy (_rv_open, _dirlist[item].rfp->path); - _status = 1; - return 0; - } - strcpy (tp, _cur_path); - strcat (tp, _dirlist[item].name); - if (_dirlist[item].flags & 4) { - fib_opendir (dpy, tp, NULL); - return 0; - } else { - _status = 1; - strcpy (_rv_open, tp); - } - return 0; -} - -static void cb_cancel (Display *dpy) { - _status = -1; - - // unused - return; (void)dpy; -} - -static void cb_open (Display *dpy) { - if (_fsel >= 0 && _fsel < _dircount) { - fib_open (dpy, _fsel); - } -} - -static void sync_button_states () { - if (_fib_show_places) - _btn_places.flags |= 2; - else - _btn_places.flags &= ~2; - if (_fib_filter_fn) // inverse -> show all - _btn_filter.flags &= ~2; - else - _btn_filter.flags |= 2; - if (_fib_hidden_fn) - _btn_hidden.flags |= 2; - else - _btn_hidden.flags &= ~2; -} - -static void cb_places (Display *dpy) { - _fib_show_places = ! _fib_show_places; - if (_placecnt < 1) - _fib_show_places = 0; - sync_button_states (); - _fib_resized = 1; - fib_expose (dpy, _fib_win); -} - -static void cb_filter (Display *dpy) { - _fib_filter_fn = ! _fib_filter_fn; - sync_button_states (); - char *sel = _fsel >= 0 ? strdup (_dirlist[_fsel].name) : NULL; - fib_opendir (dpy, _cur_path, sel); - free (sel); -} - -static void cb_hidden (Display *dpy) { - _fib_hidden_fn = ! _fib_hidden_fn; - sync_button_states (); - char *sel = _fsel >= 0 ? strdup (_dirlist[_fsel].name) : NULL; - fib_opendir (dpy, _cur_path, sel); - free (sel); -} - -static int fib_widget_at_pos (Display *dpy, int x, int y, int *it) { - const int btop = _fib_height - BTNBTMMARGIN * _fib_font_vsep - _fib_font_ascent - BTNPADDING * _scalefactor; - const int bbot = btop + _fib_font_height + BTNPADDING * 2 * _scalefactor; - const int llen = (_fib_height - LISTBOT * _fib_font_vsep) / _fib_font_vsep; - const int ltop = LISTTOP * _fib_font_vsep; - const int fbot = ltop + 4 * _scalefactor + llen * _fib_font_vsep; - const int ptop = PATHBTNTOP - _fib_font_ascent; - assert (it); - - // paths at top - if (y > ptop && y < ptop + _fib_font_height && _view_p >= 0 && _pathparts > 0) { - int i = _view_p; - *it = -1; - if (i > 0) { // special case '<' - if (x > FAREAMRGB * _scalefactor && x <= FAREAMRGB * _scalefactor + _pathbtn[0].xw) { - *it = _view_p - 1; - i = _pathparts; - } - } - while (i < _pathparts) { - if (x >= _pathbtn[i].x0 && x <= _pathbtn[i].x0 + _pathbtn[i].xw) { - *it = i; - break; - } - ++i; - } - assert (*it < _pathparts); - if (*it >= 0) return 1; - else return 0; - } - - // buttons at bottom - if (y > btop && y < bbot) { - size_t i; - *it = -1; - for (i = 0; i < sizeof(_btns) / sizeof(FibButton*); ++i) { - const int bx = _btns[i]->x0; - if (_btns[i]->flags & 8) { continue; } - if (x > bx && x < bx + _btns[i]->xw) { - *it = i; - } - } - if (*it >= 0) return 3; - else return 0; - } - - // main file area - if (y >= ltop - _fib_font_vsep && y < fbot && x > FAREAMRGL * _scalefactor && x < _fib_width - FAREAMRGR * _scalefactor) { - // scrollbar - if (_scrl_y0 > 0 && x >= _fib_width - (FAREAMRGR + SCROLLBARW) * _scalefactor && x <= _fib_width - FAREAMRGR * _scalefactor) { - if (y >= _scrl_y0 && y < _scrl_y1) { - *it = 0; - } else if (y >= _scrl_y1) { - *it = 2; - } else { - *it = 1; - } - return 4; - } - // file-list - else if (y >= ltop) { - const int item = (y - ltop) / _fib_font_vsep + _scrl_f; - *it = -1; - if (item >= 0 && item < _dircount) { - *it = item; - } - if (*it >= 0) return 2; - else return 0; - } - else { - *it = -1; - const int fsel_width = _fib_width - (FAREAMRGL + FAREAMRGR) * _scalefactor - (llen < _dircount ? SCROLLBARW * _scalefactor : 0); - const int t_s = FAREAMRGL * _scalefactor + fsel_width - _fib_font_time_width - TEXTSEP * 2 * _scalefactor; - const int t_t = FAREAMRGL * _scalefactor + fsel_width - TEXTSEP * _scalefactor - _fib_font_size_width - ((_columns & 2) ? ( _fib_font_time_width + TEXTSEP * 2 * _scalefactor) : 0); - if (x >= fsel_width + FAREAMRGL * _scalefactor) ; - else if ((_columns & 2) && x >= t_s) *it = 3; - else if ((_columns & 1) && x >= t_t) *it = 2; - else if (x >= FAREATEXTL * _scalefactor + _fib_dir_indent - TEXTSEP * _scalefactor) *it = 1; - if (*it >= 0) return 5; - else return 0; - } - } - - // places list - if (_fib_show_places && y >= ltop && y < fbot && x > FAREAMRGB * _scalefactor && x < (FAREAMRGL - FAREAMRGB) * _scalefactor) { - const int item = (y - ltop) / _fib_font_vsep; - *it = -1; - if (item >= 0 && item < _placecnt) { - *it = item; - } - if (*it >= 0) return 6; - else return 0; - } - - return 0; - - // unused - (void)dpy; -} - -static void fib_update_hover (Display *dpy, int need_expose, const int type, const int item) { - int hov_p = -1; - int hov_b = -1; - int hov_h = -1; - int hov_s = -1; -#ifdef LIST_ENTRY_HOVER - int hov_f = -1; - int hov_l = -1; -#endif - - switch (type) { - case 1: hov_p = item; break; - case 3: hov_b = item; break; - case 4: hov_s = item; break; - case 5: hov_h = item; break; -#ifdef LIST_ENTRY_HOVER - case 6: hov_l = item; break; - case 2: hov_f = item; break; -#endif - default: break; - } -#ifdef LIST_ENTRY_HOVER - if (hov_f != _hov_f) { _hov_f = hov_f; need_expose = 1; } - if (hov_l != _hov_l) { _hov_l = hov_l; need_expose = 1; } -#endif - if (hov_b != _hov_b) { _hov_b = hov_b; need_expose = 1; } - if (hov_p != _hov_p) { _hov_p = hov_p; need_expose = 1; } - if (hov_h != _hov_h) { _hov_h = hov_h; need_expose = 1; } - if (hov_s != _hov_s) { _hov_s = hov_s; need_expose = 1; } - - if (need_expose) { - fib_expose (dpy, _fib_win); - } -} - -static void fib_motion (Display *dpy, int x, int y) { - int it = -1; - - if (_scrl_my >= 0) { - const int sdiff = y - _scrl_my; - const int llen = (_fib_height - LISTBOT * _fib_font_vsep) / _fib_font_vsep; - const int fsel_height = 4 + llen * _fib_font_vsep; - const float sl = (fsel_height + _fib_font_vsep - (SCROLLBOXH + SCROLLBOXH)) / (float) _dircount; - - int news = _scrl_mf + sdiff / sl; - if (news < 0) news = 0; - if (news >= (_dircount - llen)) news = _dircount - llen; - if (news != _scrl_f) { - _scrl_f = news; - fib_expose (dpy, _fib_win); - } - return; - } - - const int type = fib_widget_at_pos (dpy, x, y, &it); - fib_update_hover (dpy, 0, type, it); -} - -static void fib_mousedown (Display *dpy, int x, int y, int btn, unsigned long time) { - int it; - switch (fib_widget_at_pos (dpy, x, y, &it)) { - case 4: // scrollbar - if (btn == 1) { - _dblclk = 0; - if (it == 0) { - _scrl_my = y; - _scrl_mf = _scrl_f; - } else { - int llen = (_fib_height - LISTBOT * _fib_font_vsep) / _fib_font_vsep; - if (llen < 2) llen = 2; - int news = _scrl_f; - if (it == 1) { - news -= llen - 1; - } else { - news += llen - 1; - } - if (news < 0) news = 0; - if (news >= (_dircount - llen)) news = _dircount - llen; - if (news != _scrl_f && _scrl_y0 >= 0) { - assert (news >=0); - _scrl_f = news; - fib_update_hover (dpy, 1, 4, it); - } - } - } - break; - case 2: // file-list - if (btn == 4 || btn == 5) { - const int llen = (_fib_height - LISTBOT * _fib_font_vsep) / _fib_font_vsep; - int news = _scrl_f + ((btn == 4) ? - 1 : 1); - if (news < 0) news = 0; - if (news >= (_dircount - llen)) news = _dircount - llen; - if (news != _scrl_f && _scrl_y0 >= 0) { - assert (news >=0); - _scrl_f = news; - fib_update_hover (dpy, 1, 0, 0); - } - _dblclk = 0; - } - else if (btn == 1 && it >= 0 && it < _dircount) { - if (_fsel == it) { - if (time - _dblclk < DBLCLKTME) { - fib_open (dpy, it); - _dblclk = 0; - } - _dblclk = time; - } else { - fib_select (dpy, it); - _dblclk = time; - } - /* - if (_fsel >= 0) { - if (!(_dirlist[_fsel].flags & 4)); - } - */ - } - break; - case 1: // paths - assert (_fsel < _dircount); - assert (it >= 0 && it < _pathparts); - { - int i = 0; - char path[1024] = "/"; - while (++i <= it) { - strcat (path, _pathbtn[i].name); - strcat (path, "/"); - } - char *sel = NULL; - if (i < _pathparts) - sel = strdup (_pathbtn[i].name); - else if (i == _pathparts && _fsel >= 0) - sel = strdup (_dirlist[_fsel].name); - fib_opendir (dpy, path, sel); - free (sel); - } - break; - case 3: // btn - if (btn == 1 && _btns[it]->callback) { - _btns[it]->callback (dpy); - } - break; - case 5: // sort - if (btn == 1) { - switch (it) { - case 1: if (_sort == 0) _sort = 1; else _sort = 0; break; - case 2: if (_sort == 2) _sort = 3; else _sort = 2; break; - case 3: if (_sort == 4) _sort = 5; else _sort = 4; break; - } - if (_fsel >= 0) { - assert (_dirlist && _dircount >= _fsel); - _dirlist[_fsel].flags &= ~2; - char *sel = strdup (_dirlist[_fsel].name); - fib_resort (sel); - free (sel); - } else { - fib_resort (NULL); - _fsel = -1; - } - fib_reset (); - _hov_h = it; - fib_select (dpy, _fsel); - } - break; - case 6: - if (btn == 1 && it >= 0 && it < _placecnt) { - fib_opendir (dpy, _placelist[it].path, NULL); - } - break; - default: - break; - } -} - -static void fib_mouseup (Display *dpy, int x, int y, int btn, unsigned long time) { - _scrl_my = -1; - - // unused - return; (void)dpy; (void)x; (void)y; (void)btn; (void)time; -} - -static void add_place_raw (Display *dpy, const char *name, const char *path) { - _placelist = (FibPlace*) realloc (_placelist, (_placecnt + 1) * sizeof(FibPlace)); - strcpy (_placelist[_placecnt].path, path); - strcpy (_placelist[_placecnt].name, name); - _placelist[_placecnt].flags = 0; - - int sw = -1; - query_font_geometry (dpy, _fib_gc, name, &sw, NULL, NULL, NULL); - if (sw > _fib_place_width) { - _fib_place_width = sw; - } - ++_placecnt; -} - -static int add_place_places (Display *dpy, const char *name, const char *url) { - char const * path; - struct stat fs; - int i; - if (!url || strlen (url) < 1) return -1; - if (!name || strlen (name) < 1) return -1; - if (url[0] == '/') { - path = url; - } - else if (!strncmp (url, "file:///", 8)) { - path = &url[7]; - } - else { - return -1; - } - - if (access (path, R_OK)) { - return -1; - } - if (stat (path, &fs)) { - return -1; - } - if (!S_ISDIR (fs.st_mode)) { - return -1; - } - - for (i = 0; i < _placecnt; ++i) { - if (!strcmp (path, _placelist[i].path)) { - return -1; - } - } - add_place_raw (dpy, name, path); - return 0; -} - -static int parse_gtk_bookmarks (Display *dpy, const char *fn) { - char tmp[1024]; - if (access (fn, R_OK)) { - return -1; - } - FILE *bm = fopen (fn, "r"); - if (!bm) return -1; - int found = 0; - while (fgets (tmp, sizeof(tmp), bm) - && strlen (tmp) > 1 - && strlen (tmp) < sizeof(tmp)) - { - char *s, *n; - tmp[strlen (tmp) - 1] = '\0'; // strip newline - if ((s = strchr (tmp, ' '))) { - *s = '\0'; - n = strdup (++s); - decode_3986 (tmp); - if (!add_place_places (dpy, n, tmp)) { - ++found; - } - free (n); - } else if ((s = strrchr (tmp, '/'))) { - n = strdup (++s); - decode_3986 (tmp); - if (!add_place_places (dpy, n, tmp)) { - ++found; - } - free (n); - } - } - fclose (bm); - return found; -} - -#ifdef HAVE_MNTENT -static const char *ignore_mountpoints[] = { - "/bin", "/boot", "/dev", "/etc", - "/lib", "/live", "/mnt", "/opt", - "/root", "/sbin", "/srv", "/tmp", - "/usr", "/var", "/proc", "/sbin", - "/net", "/sys" -}; - -static const char *ignore_fs[] = { - "auto", "autofs", - "debugfs", "devfs", - "devpts", "ecryptfs", - "fusectl", "kernfs", - "linprocfs", "proc", - "ptyfs", "rootfs", - "selinuxfs", "sysfs", - "tmpfs", "usbfs", - "nfsd", "rpc_pipefs", -}; - -static const char *ignore_devices[] = { - "binfmt_", "devpts", - "gvfs", "none", - "nfsd", "sunrpc", - "/dev/loop", "/dev/vn" -}; - -static int check_mount (const char *mountpoint, const char *fs, const char *device) { - size_t i; - if (!mountpoint || !fs || !device) return -1; - //printf("%s %s %s\n", mountpoint, fs, device); - for (i = 0 ; i < sizeof(ignore_mountpoints) / sizeof(char*); ++i) { - if (!strncmp (mountpoint, ignore_mountpoints[i], strlen (ignore_mountpoints[i]))) { - return 1; - } - } - if (!strncmp (mountpoint, "/home", 5)) { - return 1; - } - for (i = 0 ; i < sizeof(ignore_fs) / sizeof(char*); ++i) { - if (!strncmp (fs, ignore_fs[i], strlen (ignore_fs[i]))) { - return 1; - } - } - for (i = 0 ; i < sizeof(ignore_devices) / sizeof(char*); ++i) { - if (!strncmp (device, ignore_devices[i], strlen (ignore_devices[i]))) { - return 1; - } - } - return 0; -} - -static int read_mtab (Display *dpy, const char *mtab) { - FILE *mt = fopen (mtab, "r"); - if (!mt) return -1; - int found = 0; - struct mntent *mntent; - while ((mntent = getmntent (mt)) != NULL) { - char *s; - if (check_mount (mntent->mnt_dir, mntent->mnt_type, mntent->mnt_fsname)) - continue; - - if ((s = strrchr (mntent->mnt_dir, '/'))) { - ++s; - } else { - s = mntent->mnt_dir; - } - if (!add_place_places (dpy, s, mntent->mnt_dir)) { - ++found; - } - } - fclose (mt); - return found; -} -#endif - -static void populate_places (Display *dpy) { - char tmp[1024]; - int spacer = -1; - if (_placecnt > 0) return; - _fib_place_width = 0; - - if (_recentcnt > 0) { - add_place_raw (dpy, "Recently Used", ""); - _placelist[0].flags |= 4; - } - - add_place_places (dpy, "Home", getenv ("HOME")); - - if (getenv ("HOME")) { - strcpy (tmp, getenv ("HOME")); - strcat (tmp, "/Desktop"); - add_place_places (dpy, "Desktop", tmp); - } - - add_place_places (dpy, "Filesystem", "/"); - - if (_placecnt > 0) spacer = _placecnt -1; - - if (strlen (_fib_cfg_custom_places) > 0) { - parse_gtk_bookmarks (dpy, _fib_cfg_custom_places); - } - -#ifdef HAVE_MNTENT - if (read_mtab (dpy, "/proc/mounts") < 1) { - read_mtab (dpy, "/etc/mtab"); - } -#endif - - int parsed_bookmarks = 0; - if (!parsed_bookmarks && getenv ("HOME")) { - strcpy (tmp, getenv ("HOME")); - strcat (tmp, "/.gtk-bookmarks"); - if (parse_gtk_bookmarks (dpy, tmp) > 0) { - parsed_bookmarks = 1; - } - } - if (!parsed_bookmarks && getenv ("XDG_CONFIG_HOME")) { - strcpy (tmp, getenv ("XDG_CONFIG_HOME")); - strcat (tmp, "/gtk-3.0/bookmarks"); - if (parse_gtk_bookmarks (dpy, tmp) > 0) { - parsed_bookmarks = 1; - } - } - if (!parsed_bookmarks && getenv ("HOME")) { - strcpy (tmp, getenv ("HOME")); - strcat (tmp, "/.config/gtk-3.0/bookmarks"); - if (parse_gtk_bookmarks (dpy, tmp) > 0) { - parsed_bookmarks = 1; - } - } - if (_fib_place_width > 0) { - _fib_place_width = MIN (_fib_place_width + TEXTSEP + _fib_dir_indent /*extra*/ , PLACESWMAX); - } - if (spacer > 0 && spacer < _placecnt -1) { - _placelist[ spacer ].flags |= 4; - } -} - -static uint8_t font_err = 0; -static int x_error_handler (Display *d, XErrorEvent *e) { - font_err = 1; - return 0; - - // unused - (void)d; (void)e; -} - -int x_fib_show (Display *dpy, Window parent, int x, int y, double scalefactor) { - if (_fib_win) { - XSetInputFocus (dpy, _fib_win, RevertToParent, CurrentTime); - return -1; - } - - _status = 0; - _rv_open[0] = '\0'; - - Colormap colormap = DefaultColormap (dpy, DefaultScreen (dpy)); - _c_gray1.flags = DoRed | DoGreen | DoBlue; - _c_gray0.red = _c_gray0.green = _c_gray0.blue = 0x5000; // 95% hover prelight - _c_gray1.red = _c_gray1.green = _c_gray1.blue = 0x1100; // 93% window bg, scrollbar-fg - _c_gray2.red = _c_gray2.green = _c_gray2.blue = 0x1c00; // 83% button & list bg - _c_gray3.red = _c_gray3.green = _c_gray3.blue = 0x0a00; // 75% heading + scrollbar-bg - _c_gray4.red = _c_gray4.green = _c_gray4.blue = 0xd600; // 40% prelight text, sep lines - _c_gray5.red = _c_gray5.green = _c_gray5.blue = 0x3000; // 20% 3D border - - if (!XAllocColor (dpy, colormap, &_c_gray0)) return -1; - if (!XAllocColor (dpy, colormap, &_c_gray1)) return -1; - if (!XAllocColor (dpy, colormap, &_c_gray2)) return -1; - if (!XAllocColor (dpy, colormap, &_c_gray3)) return -1; - if (!XAllocColor (dpy, colormap, &_c_gray4)) return -1; - if (!XAllocColor (dpy, colormap, &_c_gray5)) return -1; - - XSetWindowAttributes attr; - memset (&attr, 0, sizeof(XSetWindowAttributes)); - attr.border_pixel = _c_gray2.pixel; - - attr.event_mask = ExposureMask | KeyPressMask - | ButtonPressMask | ButtonReleaseMask - | ConfigureNotify | StructureNotifyMask - | PointerMotionMask | LeaveWindowMask; - - _fib_win = XCreateWindow ( - dpy, DefaultRootWindow (dpy), - x, y, _fib_width * scalefactor, _fib_height * scalefactor, - 1, CopyFromParent, InputOutput, CopyFromParent, - CWEventMask | CWBorderPixel, &attr); - - _scalefactor = scalefactor; - - if (!_fib_win) { return 1; } - - if (parent) - XSetTransientForHint (dpy, _fib_win, parent); - - XStoreName (dpy, _fib_win, "Select File"); - - Atom wmDelete = XInternAtom (dpy, "WM_DELETE_WINDOW", True); - XSetWMProtocols (dpy, _fib_win, &wmDelete, 1); - - _fib_gc = XCreateGC (dpy, _fib_win, 0, NULL); - XSetLineAttributes (dpy, _fib_gc, 1, LineSolid, CapButt, JoinMiter); - const char dl[1] = {1}; - XSetDashes (dpy, _fib_gc, 0, dl, 1); - - int (*handler)(Display *, XErrorEvent *) = XSetErrorHandler (&x_error_handler); - -#define _XTESTFONT(FN) \ - { \ - font_err = 0; \ - _fibfont = XLoadFont (dpy, FN); \ - XSetFont (dpy, _fib_gc, _fibfont); \ - XSync (dpy, False); \ - } - - font_err = 1; - if (getenv ("XJFONT")) _XTESTFONT (getenv ("XJFONT")); - if (font_err && strlen (_fib_cfg_custom_font) > 0) _XTESTFONT (_fib_cfg_custom_font); - if (scalefactor >= 2.5) { - if (font_err) _XTESTFONT ("-*-helvetica-medium-r-normal-*-18-*-*-*-*-*-*-*"); - if (font_err) _XTESTFONT ("-*-verdana-medium-r-normal-*-18-*-*-*-*-*-*-*"); - if (font_err) _XTESTFONT ("-misc-fixed-medium-r-normal-*-20-*-*-*-*-*-*-*"); - if (font_err) _XTESTFONT ("-misc-fixed-medium-r-normal-*-18-*-*-*-*-*-*-*"); - } else if (scalefactor >= 2) { - if (font_err) _XTESTFONT ("-*-helvetica-medium-r-normal-*-16-*-*-*-*-*-*-*"); - if (font_err) _XTESTFONT ("-*-verdana-medium-r-normal-*-16-*-*-*-*-*-*-*"); - if (font_err) _XTESTFONT ("-misc-fixed-medium-r-normal-*-18-*-*-*-*-*-*-*"); - if (font_err) _XTESTFONT ("-misc-fixed-medium-r-normal-*-16-*-*-*-*-*-*-*"); - } else if (scalefactor >= 1.5) { - if (font_err) _XTESTFONT ("-*-helvetica-medium-r-normal-*-14-*-*-*-*-*-*-*"); - if (font_err) _XTESTFONT ("-*-verdana-medium-r-normal-*-14-*-*-*-*-*-*-*"); - if (font_err) _XTESTFONT ("-misc-fixed-medium-r-normal-*-15-*-*-*-*-*-*-*"); - if (font_err) _XTESTFONT ("-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-*-*"); - } else { - if (font_err) _XTESTFONT ("-*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*"); - if (font_err) _XTESTFONT ("-*-verdana-medium-r-normal-*-12-*-*-*-*-*-*-*"); - if (font_err) _XTESTFONT ("-misc-fixed-medium-r-normal-*-13-*-*-*-*-*-*-*"); - if (font_err) _XTESTFONT ("-misc-fixed-medium-r-normal-*-12-*-*-*-*-*-*-*"); - } - if (font_err) _fibfont = None; - XSync (dpy, False); - XSetErrorHandler (handler); - - if (_fib_font_height == 0) { // 1st time only - query_font_geometry (dpy, _fib_gc, "D ", &_fib_dir_indent, NULL, NULL, NULL); - query_font_geometry (dpy, _fib_gc, "_", &_fib_spc_norm, NULL, NULL, NULL); - if (query_font_geometry (dpy, _fib_gc, "|0Yy", NULL, &_fib_font_height, &_fib_font_ascent, NULL)) { - XFreeGC (dpy, _fib_gc); - XDestroyWindow (dpy, _fib_win); - _fib_win = 0; - return -1; - } - _fib_font_height += 3 * scalefactor; - _fib_font_ascent += 2 * scalefactor; - _fib_font_vsep = _fib_font_height + 2 * scalefactor; - } - - populate_places (dpy); - - strcpy (_btn_ok.text, "Open"); - strcpy (_btn_cancel.text, "Cancel"); - strcpy (_btn_filter.text, "List All Files"); - strcpy (_btn_places.text, "Show Places"); - strcpy (_btn_hidden.text, "Show Hidden"); - - _btn_ok.callback = &cb_open; - _btn_cancel.callback = &cb_cancel; - _btn_filter.callback = &cb_filter; - _btn_places.callback = &cb_places; - _btn_hidden.callback = &cb_hidden; - _btn_filter.flags |= 4; - _btn_places.flags |= 4; - _btn_hidden.flags |= 4; - - if (!_fib_filter_function) { - _btn_filter.flags |= 8; - } - - size_t i; - int btncnt = 0; - _btn_w = 0; - _btn_span = 0; - for (i = 0; i < sizeof(_btns) / sizeof(FibButton*); ++i) { - if (_btns[i]->flags & 8) { continue; } - query_font_geometry (dpy, _fib_gc, _btns[i]->text, &_btns[i]->tw, NULL, NULL, NULL); - if (_btns[i]->flags & 4) { - _btn_span += _btns[i]->tw + _fib_font_ascent + TEXTSEP * scalefactor; - } else { - ++btncnt; - if (_btns[i]->tw > _btn_w) - _btn_w = _btns[i]->tw; - } - } - - _btn_w += (BTNPADDING + BTNPADDING + TEXTSEP + TEXTSEP + TEXTSEP) * scalefactor; - _btn_span += _btn_w * btncnt + DSEP * scalefactor * (i - 1) + (FAREAMRGR + FAREAMRGB) * scalefactor; - - for (i = 0; i < sizeof(_btns) / sizeof(FibButton*); ++i) { - if (_btns[i]->flags & 8) { continue; } - if (_btns[i]->flags & 4) { - _btns[i]->xw = _btns[i]->tw + _fib_font_ascent + TEXTSEP * scalefactor; - } else { - _btns[i]->xw = _btn_w; - } - } - - sync_button_states () ; - - _fib_height = _fib_font_vsep * 15.8 * (1.0 + (scalefactor - 1.0) / 2.0); - _fib_width = MAX (_btn_span, 480 * scalefactor); - - XResizeWindow (dpy, _fib_win, _fib_width, _fib_height); - - XTextProperty x_wname, x_iname; - XSizeHints hints; - XWMHints wmhints; - - hints.flags = PSize | PMinSize; - hints.min_width = _btn_span; - hints.min_height = 8 * _fib_font_vsep; - - char *w_name = & _fib_cfg_title[0]; - - wmhints.input = True; - wmhints.flags = InputHint; - if (XStringListToTextProperty (&w_name, 1, &x_wname) && - XStringListToTextProperty (&w_name, 1, &x_iname)) - { - XSetWMProperties (dpy, _fib_win, &x_wname, &x_iname, NULL, 0, &hints, &wmhints, NULL); - XFree (x_wname.value); - XFree (x_iname.value); - } - - XSetWindowBackground (dpy, _fib_win, _c_gray1.pixel); - - _fib_mapped = 0; - XMapRaised (dpy, _fib_win); - - if (!strlen (_cur_path) || !fib_opendir (dpy, _cur_path, NULL)) { - fib_opendir (dpy, getenv ("HOME") ? getenv ("HOME") : "/", NULL); - } - -#if 0 - XGrabPointer (dpy, _fib_win, True, - ButtonReleaseMask | ButtonPressMask | EnterWindowMask | LeaveWindowMask | PointerMotionMask | StructureNotifyMask, - GrabModeAsync, GrabModeAsync, None, None, CurrentTime); - XGrabKeyboard (dpy, _fib_win, True, GrabModeAsync, GrabModeAsync, CurrentTime); - //XSetInputFocus (dpy, parent, RevertToNone, CurrentTime); -#endif - _recentlock = 1; - return 0; -} - -void x_fib_close (Display *dpy) { - if (!_fib_win) return; - XFreeGC (dpy, _fib_gc); - XDestroyWindow (dpy, _fib_win); - _fib_win = 0; - free (_dirlist); - _dirlist = NULL; - free (_pathbtn); - _pathbtn = NULL; - if (_fibfont != None) XUnloadFont (dpy, _fibfont); - _fibfont = None; - free (_placelist); - _placelist = NULL; - _dircount = 0; - _pathparts = 0; - _placecnt = 0; - if (_pixbuffer != None) XFreePixmap (dpy, _pixbuffer); - _pixbuffer = None; - Colormap colormap = DefaultColormap (dpy, DefaultScreen (dpy)); - XFreeColors (dpy, colormap, &_c_gray0.pixel, 1, 0); - XFreeColors (dpy, colormap, &_c_gray1.pixel, 1, 0); - XFreeColors (dpy, colormap, &_c_gray2.pixel, 1, 0); - XFreeColors (dpy, colormap, &_c_gray3.pixel, 1, 0); - XFreeColors (dpy, colormap, &_c_gray4.pixel, 1, 0); - XFreeColors (dpy, colormap, &_c_gray5.pixel, 1, 0); - _recentlock = 0; -} - -int x_fib_handle_events (Display *dpy, XEvent *event) { - if (!_fib_win) return 0; - if (_status) return 0; - if (event->xany.window != _fib_win) { - return 0; - } - - switch (event->type) { - case MapNotify: - _fib_mapped = 1; - break; - case UnmapNotify: - _fib_mapped = 0; - break; - case LeaveNotify: - fib_update_hover (dpy, 1, 0, 0); - break; - case ClientMessage: - if (!strcmp (XGetAtomName (dpy, event->xclient.message_type), "WM_PROTOCOLS")) { - _status = -1; - } - break; - case ConfigureNotify: - if ( - (event->xconfigure.width > 1 && event->xconfigure.height > 1) - && - (event->xconfigure.width != _fib_width || event->xconfigure.height != _fib_height) - ) - { - _fib_width = event->xconfigure.width; - _fib_height = event->xconfigure.height; - _fib_resized = 1; - } - break; - case Expose: - if (event->xexpose.count == 0) { - fib_expose (dpy, event->xany.window); - } - break; - case MotionNotify: - fib_motion (dpy, event->xmotion.x, event->xmotion.y); - if (event->xmotion.is_hint == NotifyHint) { - XGetMotionEvents (dpy, event->xany.window, CurrentTime, CurrentTime, NULL); - } - break; - case ButtonPress: - fib_mousedown (dpy, event->xbutton.x, event->xbutton.y, event->xbutton.button, event->xbutton.time); - break; - case ButtonRelease: - fib_mouseup (dpy, event->xbutton.x, event->xbutton.y, event->xbutton.button, event->xbutton.time); - break; - case KeyRelease: - break; - case KeyPress: - { - KeySym key; - char buf[100]; - static XComposeStatus stat; - XLookupString (&event->xkey, buf, sizeof(buf), &key, &stat); - switch (key) { - case XK_Escape: - _status = -1; - break; - case XK_Up: - if (_fsel > 0) { - fib_select (dpy, _fsel - 1); - } - break; - case XK_Down: - if (_fsel < _dircount -1) { - fib_select ( dpy, _fsel + 1); - } - break; - case XK_Page_Up: - if (_fsel > 0) { - int llen = (_fib_height - LISTBOT * _fib_font_vsep) / _fib_font_vsep; - if (llen < 1) llen = 1; else --llen; - int fs = MAX (0, _fsel - llen); - fib_select ( dpy, fs); - } - break; - case XK_Page_Down: - if (_fsel < _dircount) { - int llen = (_fib_height - LISTBOT * _fib_font_vsep) / _fib_font_vsep; - if (llen < 1) llen = 1; else --llen; - int fs = MIN (_dircount - 1, _fsel + llen); - fib_select ( dpy, fs); - } - break; - case XK_Left: - if (_pathparts > 1) { - int i = 0; - char path[1024] = "/"; - while (++i < _pathparts - 1) { - strcat (path, _pathbtn[i].name); - strcat (path, "/"); - } - char *sel = strdup (_pathbtn[_pathparts-1].name); - fib_opendir (dpy, path, sel); - free (sel); - } - break; - case XK_Right: - if (_fsel >= 0 && _fsel < _dircount) { - if (_dirlist[_fsel].flags & 4) { - cb_open (dpy); - } - } - break; - case XK_Return: - cb_open (dpy); - break; - default: - if ((key >= XK_a && key <= XK_z) || (key >= XK_0 && key <= XK_9)) { - int i; - for (i = 0; i < _dircount; ++i) { - int j = (_fsel + i + 1) % _dircount; - char kcmp = _dirlist[j].name[0]; - if (kcmp > 0x40 && kcmp <= 0x5A) kcmp |= 0x20; - if (kcmp == (char)key) { - fib_select ( dpy, j); - break; - } - } - } - break; - } - } - break; - } - - if (_status) { - x_fib_close (dpy); - } - return _status; -} - -int x_fib_status () { - return _status; -} - -int x_fib_configure (int k, const char *v) { - if (_fib_win) { return -1; } - switch (k) { - case 0: - if (strlen (v) >= sizeof(_cur_path) -1) return -2; - if (strlen (v) < 1) return -2; - if (v[0] != '/') return -2; - if (strstr (v, "//")) return -2; - strncpy (_cur_path, v, sizeof(_cur_path)); - break; - case 1: - if (strlen (v) >= sizeof(_fib_cfg_title) -1) return -2; - strncpy (_fib_cfg_title, v, sizeof(_fib_cfg_title)); - break; - case 2: - if (strlen (v) >= sizeof(_fib_cfg_custom_font) -1) return -2; - strncpy (_fib_cfg_custom_font, v, sizeof(_fib_cfg_custom_font)); - break; - case 3: - if (strlen (v) >= sizeof(_fib_cfg_custom_places) -1) return -2; - strncpy (_fib_cfg_custom_places, v, sizeof(_fib_cfg_custom_places)); - break; - default: - return -2; - } - return 0; -} - -int x_fib_cfg_buttons (int k, int v) { - if (_fib_win) { return -1; } - switch (k) { - case 1: - if (v < 0) { - _btn_hidden.flags |= 8; - } else { - _btn_hidden.flags &= ~8; - } - if (v == 1) { - _btn_hidden.flags |= 2; - _fib_hidden_fn = 1; - } else if (v == 0) { - _btn_hidden.flags &= 2; - _fib_hidden_fn = 0; - } - break; - case 2: - if (v < 0) { - _btn_places.flags |= 8; - } else { - _btn_places.flags &= ~8; - } - if (v == 1) { - _btn_places.flags |= 2; - _fib_show_places = 1; - } else if (v == 0) { - _btn_places.flags &= ~2; - _fib_show_places = 0; - } - break; - case 3: - // NB. filter button is automatically hidden - // IFF the filter-function is NULL. - if (v < 0) { - _btn_filter.flags |= 8; - } else { - _btn_filter.flags &= ~8; - } - if (v == 1) { - _btn_filter.flags &= ~2; // inverse - 'show all' = !filter - _fib_filter_fn = 1; - } else if (v == 0) { - _btn_filter.flags |= 2; - _fib_filter_fn = 0; - } - break; - default: - return -2; - } - return 0; -} - -int x_fib_cfg_filter_callback (int (*cb)(const char*)) { - if (_fib_win) { return -1; } - _fib_filter_function = cb; - return 0; -} - -char *x_fib_filename () { - if (_status > 0 && !_fib_win) - return strdup (_rv_open); - else - return NULL; -} -#endif // HAVE_X11 - -#if defined(__clang__) -# pragma clang diagnostic pop -#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) -# pragma GCC diagnostic pop -#endif - -/* example usage */ -#ifdef SOFD_TEST - -static int fib_filter_movie_filename (const char *name) { - if (!_fib_filter_fn) return 1; - const int l3 = strlen (name) - 3; - const int l4 = l3 - 1; - const int l5 = l4 - 1; - const int l6 = l5 - 1; - const int l9 = l6 - 3; - if ( - (l4 > 0 && ( - !strcasecmp (&name[l4], ".avi") - || !strcasecmp (&name[l4], ".mov") - || !strcasecmp (&name[l4], ".ogg") - || !strcasecmp (&name[l4], ".ogv") - || !strcasecmp (&name[l4], ".mpg") - || !strcasecmp (&name[l4], ".mov") - || !strcasecmp (&name[l4], ".mp4") - || !strcasecmp (&name[l4], ".mkv") - || !strcasecmp (&name[l4], ".vob") - || !strcasecmp (&name[l4], ".asf") - || !strcasecmp (&name[l4], ".avs") - || !strcasecmp (&name[l4], ".dts") - || !strcasecmp (&name[l4], ".flv") - || !strcasecmp (&name[l4], ".m4v") - )) || - (l5 > 0 && ( - !strcasecmp (&name[l5], ".h264") - || !strcasecmp (&name[l5], ".webm") - )) || - (l6 > 0 && ( - !strcasecmp (&name[l6], ".dirac") - )) || - (l9 > 0 && ( - !strcasecmp (&name[l9], ".matroska") - )) || - (l3 > 0 && ( - !strcasecmp (&name[l3], ".dv") - || !strcasecmp (&name[l3], ".ts") - )) - ) - { - return 1; - } - return 0; -} - -int main (int argc, char **argv) { - Display* dpy = XOpenDisplay (0); - if (!dpy) return -1; - - x_fib_cfg_filter_callback (fib_filter_movie_filename); - x_fib_configure (1, "Open Movie File"); - x_fib_load_recent ("/tmp/sofd.recent"); - x_fib_show (dpy, 0, 300, 300); - - while (1) { - XEvent event; - while (XPending (dpy) > 0) { - XNextEvent (dpy, &event); - if (x_fib_handle_events (dpy, &event)) { - if (x_fib_status () > 0) { - char *fn = x_fib_filename (); - printf ("OPEN '%s'\n", fn); - x_fib_add_recent (fn, time (NULL)); - free (fn); - } - } - } - if (x_fib_status ()) { - break; - } - usleep (80000); - } - x_fib_close (dpy); - - x_fib_save_recent ("/tmp/sofd.recent"); - - x_fib_free_recent (); - XCloseDisplay (dpy); - return 0; -} -#endif diff --git a/dpf/distrho/extra/sofd/libsofd.h b/dpf/distrho/extra/sofd/libsofd.h deleted file mode 100644 index a420dc1..0000000 --- a/dpf/distrho/extra/sofd/libsofd.h +++ /dev/null @@ -1,194 +0,0 @@ -/* libSOFD - Simple Open File Dialog [for X11 without toolkit] - * - * Copyright (C) 2014 Robin Gareus - * - * 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. - */ - -#ifndef LIBSOFD_H -#define LIBSOFD_H 1 - -#ifdef HAVE_X11 -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/////////////////////////////////////////////////////////////////////////////// -/* public API */ - -/** open a file select dialog - * @param dpy X Display connection - * @param parent (optional) if not NULL, become transient for given window - * @param x if >0 set explict initial width of the window - * @param y if >0 set explict initial height of the window - * @return 0 on success - */ -int x_fib_show (Display *dpy, Window parent, int x, int y, double scalefactor); - -/** force close the dialog. - * This is normally not needed, the dialog closes itself - * when a file is selected or the user cancels selection. - * @param dpy X Display connection - */ -void x_fib_close (Display *dpy); - -/** non-blocking X11 event handler. - * It is safe to run this function even if the dialog is - * closed or was not initialized. - * - * @param dpy X Display connection - * @param event the XEvent to process - * @return status - * 0: the event was not for this window, or file-dialog still - * active, or the dialog window is not displayed. - * >0: file was selected, dialog closed - * <0: file selection was cancelled. - */ -int x_fib_handle_events (Display *dpy, XEvent *event); - -/** last status of the dialog - * @return >0: file was selected, <0: canceled or inactive. 0: active - */ -int x_fib_status (); - -/** query the selected filename - * @return NULL if none set, or allocated string to be free()ed by the called - */ -char *x_fib_filename (); - -/** customize/configure the dialog before calling \ref x_fib_show - * changes only have any effect if the dialog is not visible. - * @param k key to change - * 0: set current dir to display (must end with slash) - * 1: set title of dialog window - * 2: specify a custom X11 font to use - * 3: specify a custom 'places' file to include - * (following gtk-bookmark convention) - * @param v value - * @return 0 on success. - */ -int x_fib_configure (int k, const char *v); - -/** customize/configure the dialog before calling \ref x_fib_show - * changes only have any effect if the dialog is not visible. - * - * @param k button to change: - * 1: show hidden files - * 2: show places - * 3: show filter/list all (automatically hidden if there is no - * filter function) - * @param v <0 to hide the button >=0 show button, - * 0: set button-state to not-checked - * 1: set button-state to checked - * >1: retain current state - * @return 0 on success. - */ -int x_fib_cfg_buttons (int k, int v); - -/** set custom callback to filter file-names. - * NULL will disable the filter and hide the 'show all' button. - * changes only have any effect if the dialog is not visible. - * - * @param cb callback function to check file - * the callback function is called with the file name (basename only) - * and is expected to return 1 if the file passes the filter - * and 0 if the file should not be listed by default. - * @return 0 on success. - */ -int x_fib_cfg_filter_callback (int (*cb)(const char*)); - -#ifdef __cplusplus -} -#endif - -#endif /* END X11 specific functions */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* 'recently used' API. x-platform - * NOTE: all functions use a static cache and are not reentrant. - * It is expected that none of these functions are called in - * parallel from different threads. - */ - -/** release static resources of 'recently used files' - */ -void x_fib_free_recent (); - -/** add an entry to the recently used list - * - * The dialog does not add files automatically on open, - * if the application succeeds to open a selected file, - * this function should be called. - * - * @param path complete path to file - * @param atime time of last use, 0: NOW - * @return -1 on error, number of current entries otherwise - */ -int x_fib_add_recent (const char *path, time_t atime); - -/** get a platform specific path to a good location for - * saving the recently used file list. - * (follows XDG_DATA_HOME on Unix, and CSIDL_LOCAL_APPDATA spec) - * - * @param application-name to use to include in file - * @return pointer to static path or NULL - */ -const char *x_fib_recent_file(const char *appname); - -/** save the current list of recently used files to the given filename - * (the format is one file per line, filename URL encoded and space separated - * with last-used timestamp) - * - * This function tries to creates the containing directory if it does - * not exist. - * - * @param fn file to save the list to - * @return 0: on success - */ -int x_fib_save_recent (const char *fn); - -/** load a recently used file list. - * - * @param fn file to load the list from - * @return 0: on success - */ -int x_fib_load_recent (const char *fn); - -/** get number of entries in the current list - * @return number of entries in the recently used list - */ -unsigned int x_fib_recent_count (); - -/** get recently used entry at given position - * - * @param i entry to query - * @return pointer to static string - */ -const char *x_fib_recent_at (unsigned int i); - -#ifdef __cplusplus -} -#endif - -#endif // header guard diff --git a/dpf/distrho/src/DistrhoPluginLV2export.cpp b/dpf/distrho/src/DistrhoPluginLV2export.cpp index 3b0d22c..725022a 100644 --- a/dpf/distrho/src/DistrhoPluginLV2export.cpp +++ b/dpf/distrho/src/DistrhoPluginLV2export.cpp @@ -66,6 +66,10 @@ # define DISTRHO_PLUGIN_MINIMUM_BUFFER_SIZE 2048 #endif +#ifndef DISTRHO_PLUGIN_AND_UI_IN_SINGLE_OBJECT +# define DISTRHO_PLUGIN_AND_UI_IN_SINGLE_OBJECT DISTRHO_PLUGIN_WANT_DIRECT_ACCESS +#endif + #ifndef DISTRHO_PLUGIN_USES_MODGUI # define DISTRHO_PLUGIN_USES_MODGUI 0 #endif @@ -260,14 +264,14 @@ void lv2_generate_ttl(const char* const basename) const String pluginDLL(basename); const String pluginTTL(pluginDLL + ".ttl"); -#if DISTRHO_PLUGIN_HAS_UI + #if DISTRHO_PLUGIN_HAS_UI String pluginUI(pluginDLL); -# if ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS + #if ! DISTRHO_PLUGIN_AND_UI_IN_SINGLE_OBJECT pluginUI.truncate(pluginDLL.rfind("_dsp")); pluginUI += "_ui"; const String uiTTL(pluginUI + ".ttl"); -# endif -#endif + #endif + #endif // --------------------------------------------- @@ -278,7 +282,7 @@ void lv2_generate_ttl(const char* const basename) String manifestString; manifestString += "@prefix lv2: <" LV2_CORE_PREFIX "> .\n"; manifestString += "@prefix rdfs: .\n"; -#if DISTRHO_PLUGIN_HAS_UI && DISTRHO_PLUGIN_WANT_DIRECT_ACCESS +#if DISTRHO_PLUGIN_HAS_UI && DISTRHO_PLUGIN_AND_UI_IN_SINGLE_OBJECT manifestString += "@prefix opts: <" LV2_OPTIONS_PREFIX "> .\n"; #endif #if DISTRHO_PLUGIN_WANT_PROGRAMS @@ -304,14 +308,14 @@ void lv2_generate_ttl(const char* const basename) manifestString += "<" DISTRHO_UI_URI ">\n"; manifestString += " a ui:" DISTRHO_LV2_UI_TYPE " ;\n"; manifestString += " ui:binary <" + pluginUI + "." DISTRHO_DLL_EXTENSION "> ;\n"; -# if DISTRHO_PLUGIN_WANT_DIRECT_ACCESS +# if DISTRHO_PLUGIN_AND_UI_IN_SINGLE_OBJECT addAttribute(manifestString, "lv2:extensionData", lv2ManifestUiExtensionData, 4); addAttribute(manifestString, "lv2:optionalFeature", lv2ManifestUiOptionalFeatures, 4); addAttribute(manifestString, "lv2:requiredFeature", lv2ManifestUiRequiredFeatures, 4); addAttribute(manifestString, "opts:supportedOption", lv2ManifestUiSupportedOptions, 4, true); -# else // DISTRHO_PLUGIN_WANT_DIRECT_ACCESS +# else // DISTRHO_PLUGIN_AND_UI_IN_SINGLE_OBJECT manifestString += " rdfs:seeAlso <" + uiTTL + "> .\n"; -# endif // DISTRHO_PLUGIN_WANT_DIRECT_ACCESS +# endif // DISTRHO_PLUGIN_AND_UI_IN_SINGLE_OBJECT manifestString += "\n"; #endif @@ -1564,7 +1568,7 @@ void lv2_generate_ttl(const char* const basename) // --------------------------------------------- -#if DISTRHO_PLUGIN_HAS_UI && ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS +#if DISTRHO_PLUGIN_HAS_UI && ! DISTRHO_PLUGIN_AND_UI_IN_SINGLE_OBJECT { std::cout << "Writing " << uiTTL << "..."; std::cout.flush(); std::fstream uiFile(uiTTL, std::ios::out); diff --git a/dpf/lac/2014-small-talk.odp b/dpf/lac/2014-small-talk.odp deleted file mode 100644 index 536ccc5cddd5aaa6853c4ead1d6f93a5d4c6759d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 381315 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 z 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 z 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�ipt`YmmS??T?O4 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%0D>)Sv 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 z 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%0DHg4fe%67Cf^xC8>7 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 diff --git a/get-plugins.sh b/get-plugins.sh index b4c1664..7d305d9 100755 --- a/get-plugins.sh +++ b/get-plugins.sh @@ -35,16 +35,40 @@ mkdir plugins mv repos/DPF dpf rm -rf dpf/.git* rm -rf dpf/.travis* +rm -rf dpf/distrho/extra/choc +rm -rf dpf/distrho/extra/sofd +rm -rf dpf/dgl/pugl-extra rm -rf dpf/dgl/src/pugl-upstream/bindings rm -rf dpf/dgl/src/pugl-upstream/doc rm -rf dpf/dgl/src/pugl-upstream/examples rm -rf dpf/dgl/src/pugl-upstream/meson* rm -rf dpf/dgl/src/pugl-upstream/resources rm -rf dpf/dgl/src/pugl-upstream/scripts +rm -rf dpf/dgl/src/pugl-upstream/subprojects rm -rf dpf/dgl/src/pugl-upstream/test +rm -rf dpf/cmake rm -rf dpf/examples +rm -rf dpf/lac rm -rf dpf/tests rm -f dpf/Makefile +rm -f dpf/dgl/FileBrowserDialog.hpp +rm -f dpf/dgl/Layout.hpp +rm -f dpf/dgl/Vulkan.hpp +rm -f dpf/dgl/WebView.hpp +rm -f dpf/dgl/src/Layout.cpp +rm -f dpf/dgl/src/Stub.cpp +rm -f dpf/dgl/src/Vulkan.cpp +rm -f dpf/dgl/src/WebViewWin32.cpp +rm -f dpf/distrho/extra/Base64.hpp +rm -f dpf/distrho/extra/ChildProcess.hpp +rm -f dpf/distrho/extra/ExternalWindow.hpp +rm -f dpf/distrho/extra/FileBrowserDialog* +rm -f dpf/distrho/extra/Filesystem.hpp +rm -f dpf/distrho/extra/Runner.hpp +rm -f dpf/distrho/extra/Time.hpp +rm -f dpf/distrho/extra/WebView* + +sed -i '/ $(BUILD_DIR)\/dgl\/Layout.cpp.o \\/d' dpf/dgl/Makefile for PLUGIN in ${PLUGINS[@]}; do for f in $(ls repos/${PLUGIN}/plugins/); do